XAML: x:Array 个静态资源
XAML: x:Array of static resources
我在 ResourceDictionary
:
中声明了多个 BitmapImage
<BitmapImage x:Key="LockImageSource" UriSource="img/lock.png" />
<BitmapImage x:Key="UnlockImageSource" UriSource="img/unlock.png" />
...
我的转换器采用两个 ImageSource
元素的数组参数来根据传递的值选择要显示的图像之一:
<Image Source="{Binding Path=IsLocked,
Converter={StaticResource AlteringConverter},
ConverterParameter={StaticResource LockUnlockImageSourcePair}}"
Width="16" Height="16" />
LockUnlockImageSourcePair
资源应该是什么样的?
<x:Array x:Key="LockUnlockImageSourcePair" Type="{x:Type BitmapImage}">
<??? />
<??? />
</x:Array>
您可以将此简单样式与 DataTrigger 结合使用,而不是使用带有转换器和复杂 ConverterParameter 的绑定:
<Image Width="16" Height="16">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="{StaticResource UnlockImageSource}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsLocked}" Value="True">
<Setter Property="Source" Value="{StaticResource LockImageSource}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
如果您想为多个图像控件重用样式,您可以将其声明为资源:
<Style x:Key="LockUnlockImageStyle" TargetType="Image">
<Setter Property="Width" Value="16"/>
<Setter Property="Height" Value="16"/>
<Setter Property="Source" Value="{StaticResource UnlockImageSource}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsLocked}" Value="True">
<Setter Property="Source" Value="{StaticResource LockImageSource}"/>
</DataTrigger>
</Style.Triggers>
</Style>
...
<Image Style="{StaticResource LockUnlockImageStyle}"/>
我在 ResourceDictionary
:
BitmapImage
<BitmapImage x:Key="LockImageSource" UriSource="img/lock.png" />
<BitmapImage x:Key="UnlockImageSource" UriSource="img/unlock.png" />
...
我的转换器采用两个 ImageSource
元素的数组参数来根据传递的值选择要显示的图像之一:
<Image Source="{Binding Path=IsLocked,
Converter={StaticResource AlteringConverter},
ConverterParameter={StaticResource LockUnlockImageSourcePair}}"
Width="16" Height="16" />
LockUnlockImageSourcePair
资源应该是什么样的?
<x:Array x:Key="LockUnlockImageSourcePair" Type="{x:Type BitmapImage}">
<??? />
<??? />
</x:Array>
您可以将此简单样式与 DataTrigger 结合使用,而不是使用带有转换器和复杂 ConverterParameter 的绑定:
<Image Width="16" Height="16">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="{StaticResource UnlockImageSource}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsLocked}" Value="True">
<Setter Property="Source" Value="{StaticResource LockImageSource}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
如果您想为多个图像控件重用样式,您可以将其声明为资源:
<Style x:Key="LockUnlockImageStyle" TargetType="Image">
<Setter Property="Width" Value="16"/>
<Setter Property="Height" Value="16"/>
<Setter Property="Source" Value="{StaticResource UnlockImageSource}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsLocked}" Value="True">
<Setter Property="Source" Value="{StaticResource LockImageSource}"/>
</DataTrigger>
</Style.Triggers>
</Style>
...
<Image Style="{StaticResource LockUnlockImageStyle}"/>