c#中图像的条件显示
Conditional display of image in c#
我目前正在尝试有条件地显示图像。我读了很多关于 valueConverters 和触发器的文章,但我坚信必须有一个更简单的解决方案来解决这个简单的问题。
XAML:
<Image Source="C:\Users\Niko\Pictures\red.png" IsEnabled="{Binding IsOn}"></Image>
背后的代码:
namespace MVVM {
public class Globals
{
int i = 2;
public bool IsOn
{
get
{
if (i == 1 )
return true;
else
return false;
}
}
}
我尝试使用整数 i 来查看图像是否显示。非常感谢任何建议!
将图像的 Visibility
绑定到 IsOn 并使用内置的 BooleanToVisibilityConverter
。
<Image Source="C:\Users\Niko\Pictures\red.png" Visibility="{Binding Visibility, Converter={StaticResource BoolToVis}}"/>
然后将 BooleanToVisibilityConverter
作为静态资源添加到 window 的 <Window.Resources>
或整个应用程序的 <Application.Resources>
中。
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
请注意,x:Key
是您在 StaticResource 之后用来引用转换器的名称。
如果您不想在 ViewModel
中放置 Visibility
属性 并且不想使用转换器,您可以使用 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" />
我目前正在尝试有条件地显示图像。我读了很多关于 valueConverters 和触发器的文章,但我坚信必须有一个更简单的解决方案来解决这个简单的问题。
XAML:
<Image Source="C:\Users\Niko\Pictures\red.png" IsEnabled="{Binding IsOn}"></Image>
背后的代码:
namespace MVVM {
public class Globals
{
int i = 2;
public bool IsOn
{
get
{
if (i == 1 )
return true;
else
return false;
}
}
}
我尝试使用整数 i 来查看图像是否显示。非常感谢任何建议!
将图像的 Visibility
绑定到 IsOn 并使用内置的 BooleanToVisibilityConverter
。
<Image Source="C:\Users\Niko\Pictures\red.png" Visibility="{Binding Visibility, Converter={StaticResource BoolToVis}}"/>
然后将 BooleanToVisibilityConverter
作为静态资源添加到 window 的 <Window.Resources>
或整个应用程序的 <Application.Resources>
中。
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
请注意,x:Key
是您在 StaticResource 之后用来引用转换器的名称。
如果您不想在 ViewModel
中放置 Visibility
属性 并且不想使用转换器,您可以使用 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" />