C# c语言中图像的条件显示
我目前正在尝试有条件地显示图像。我读了很多关于ValueConverter和触发器的书,但我坚信对于这个简单的问题必须有一个更简单的解决方案 XAML:C# c语言中图像的条件显示,c#,wpf,triggers,ivalueconverter,C#,Wpf,Triggers,Ivalueconverter,我目前正在尝试有条件地显示图像。我读了很多关于ValueConverter和触发器的书,但我坚信对于这个简单的问题必须有一个更简单的解决方案 XAML: <Image Source="C:\Users\Niko\Pictures\red.png" IsEnabled="{Binding IsOn}"></Image> 我使用整数I来查看图像是否显示。非常感谢您的任何建议 将图像的可见性绑定到IsOn,并使用内置的BooleantVisibilityConverter
<Image Source="C:\Users\Niko\Pictures\red.png" IsEnabled="{Binding IsOn}"></Image>
我使用整数I来查看图像是否显示。非常感谢您的任何建议 将图像的可见性绑定到IsOn,并使用内置的BooleantVisibilityConverter
请注意,x:Key是用于引用StaticResource之后的转换器的名称。将图像的可见性绑定到IsOn,并使用内置的BooleantVisibilityConverter
请注意,x:Key是用于引用StaticResource之后的转换器的名称。如果不想在ViewModel中放置可见性属性,也不想使用转换器,则可以在此处使用DataTrigger。我根本没有ViewModel,如果选中ToggleButton,则图像可见:
<Image Source="C:\Users\Niko\Pictures\red.png">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Visibility"
Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=tg}"
Value="False">
<Setter Property="Visibility"
Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<ToggleButton Name="tg" Content="Show" HorizontalAlignment="Left" VerticalAlignment="Bottom" />
如果您不想在ViewModel中放置可见性属性,也不想使用转换器,可以在此处使用DataTrigger我根本没有ViewModel,如果选中ToggleButton,则图像可见:
<Image Source="C:\Users\Niko\Pictures\red.png">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Visibility"
Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=tg}"
Value="False">
<Setter Property="Visibility"
Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<ToggleButton Name="tg" Content="Show" HorizontalAlignment="Left" VerticalAlignment="Bottom" />
您希望将布尔绑定到图像的可见性属性,并使用BooleanToVisibilityConverter。除非您将样式设置为更改可见性,否则iEnable不会隐藏图像。使用MVVM时,您可以将图像的可见性绑定到ViewModel中的bool,并使用和IValueConverter将bool转换为visibility.Visible或visibility.Collapse。我会在我的ViewModel中使用bool而不是Visibility,因为这是更干净的方法,ViewModel不应该知道图像的可见性。您希望将bool绑定到图像的Visibility属性,并使用BooleantVisibilityConverter。除非您将样式设置为更改可见性,否则iEnable不会隐藏图像。使用MVVM时,您可以将图像的可见性绑定到ViewModel中的bool,并使用和IValueConverter将bool转换为visibility.Visible或visibility.Collapse。我会在我的ViewModel中使用bool而不是Visibility,因为这是一种更干净的方法,ViewModel不应该知道图像的可见性。但不确定这是否更容易:正如问题中所要求的,我目前正在使用此代码。我对XAML很陌生,我不想使用按钮,我想通过VM中的一个条件来实现它,以便进一步使用。我可以用tg吗?@Niko_fhtw你可以不用button@Arie我将您的DataTrigger部分与您的新部分交换,并使用我的VM代码。无论整数是哪个值,我都不会隐藏图片。@Niko_fhtw您是否在IsOn属性上实现了INotifyPropertyChanged?但不确定是否更容易:根据问题中的要求,我目前正在处理此代码。我对XAML很陌生,我不想使用按钮,我想通过VM中的一个条件来实现它,以便进一步使用。我可以用tg吗?@Niko_fhtw你可以不用button@Arie我将您的DataTrigger部分与您的新部分交换,并使用我的VM代码。我不会隐藏图片,无论我的整数是哪个值。@Niko_fhtw您是否在IsOn属性上实现了INotifyPropertyChanged?
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
<Image Source="C:\Users\Niko\Pictures\red.png">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Visibility"
Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=tg}"
Value="False">
<Setter Property="Visibility"
Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<ToggleButton Name="tg" Content="Show" HorizontalAlignment="Left" VerticalAlignment="Bottom" />