Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c语言中图像的条件显示_C#_Wpf_Triggers_Ivalueconverter - Fatal编程技术网

C# c语言中图像的条件显示

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

我目前正在尝试有条件地显示图像。我读了很多关于ValueConverter和触发器的书,但我坚信对于这个简单的问题必须有一个更简单的解决方案

XAML:

 <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" />