如何在通用 Windows 平台中连接组合框和图像?
Posted
技术标签:
【中文标题】如何在通用 Windows 平台中连接组合框和图像?【英文标题】:How to connect Combo Box with Image in Universal Windows Platform? 【发布时间】:2021-12-24 12:25:38 【问题描述】:我只是想将组合框连接到图像。这意味着当我在组合框中选择任何选项时,组合框会显示该选项的图像。请帮我知道如何做到这一点?
【问题讨论】:
【参考方案1】:实现此行为的最简单方法是在 ComboBox.SelectedItem 更改时通过处理 ComboBox.SelectionChanged 事件来更改图像源。
这里有一个简单的演示它是如何工作的。首先,创建一个ComboBox
控件并为其提供一些有关位置的数据。然后在后面的代码中处理 ComboBox.SelectionChanged 事件 并获取选中项。现在您可以检查选定的值并更改图像的来源。
XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ComboBox x:Name="LocationComboBox" Header="Location" Height="60" Width="296" ItemsSource="x:Bind source" SelectionChanged="LocationComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="local:LocationData">
<Grid>
<TextBlock Text="x:Bind location"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Image x:Name="LocationImage" Grid.Row="1"/>
</Grid>
代码隐藏:
public sealed partial class MainPage : Page
public List<LocationData> source get; set;
public MainPage()
this.InitializeComponent();
source = new List<LocationData>();
source.Add(new LocationData location = "london" );
source.Add(new LocationData location = "paris" );
source.Add(new LocationData location = "seattle" );
source.Add(new LocationData location = "vancouver" );
private void LocationComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
LocationData data = LocationComboBox.SelectedItem as LocationData;
switch (data.location)
case "london":
LocationImage.Source = new BitmapImage(new Uri("ms-appx:///Assets/london.png"));
break;
case "paris":
LocationImage.Source = new BitmapImage(new Uri("ms-appx:///Assets/paris.png"));
break;
case "seattle":
LocationImage.Source = new BitmapImage(new Uri("ms-appx:///Assets/seattle.png"));
break;
case "Rvancouvered":
LocationImage.Source = new BitmapImage(new Uri("ms-appx:///Assets/vancouver.png"));
break;
public class LocationData
public string location get; set;
您可以根据自己的需要进行更改。
【讨论】:
它对我的帮助更多,谢谢❤【参考方案2】:对于连接组合框与图像,我按照这些步骤--
XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<ComboBox x:Name="imageViewer" Width="200" Header="Picture" PlaceholderText="LifePicture" SelectionChanged="imageViewer_SelectionChanged" SelectedItem="Binding Source, Mode=OneWay" >
<x:String>America</x:String>
<x:String>Bombey</x:String>
<x:String>China</x:String>
<x:String>Delhi</x:String>
</ComboBox>
<Image x:Name="PictureView" Height="150" Width="150"
Margin="0,8,0,0" HorizontalAlignment="Left" />
</StackPanel>
</Grid>
代码隐藏:
private void imageViewer_SelectionChanged(object sender, SelectionChangedEventArgs e)
string imageName = imageViewer.SelectedItem.ToString();
if(imageName == "America")
PictureView.Source = new BitmapImage(new Uri("ms-appx:///Assets/a.jpg"));
else if (imageName == "Bombey")
PictureView.Source = new BitmapImage(new Uri("ms-appx:///Assets/b.jpg"));
else if (imageName == "China")
PictureView.Source = new BitmapImage(new Uri("ms-appx:///Assets/c.jpg"));
else if (imageName == "Delhi")
PictureView.Source = new BitmapImage(new Uri("ms-appx:///Assets/d.jpg"));
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 如果您已经解决了您的问题,请mark它被接受以上是关于如何在通用 Windows 平台中连接组合框和图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据源绑定到 datagridview 组合框和复选框