用资源中的图像填充矩形
Fill rectangle with Image from resource
我有一个矩形,我想用基于 属性 的不同图片填充它。我创建了一个 bool 变量和样式的绑定。但是代码不起作用。
错误:无法将 ystem.Windows.Media.Imaging.BitmapImage 转换为 System.Windows.Media.Brush
<Rectangle Width="20" Height="20" Canvas.Left="{Binding x}" Canvas.Top="{Binding y}">
<Rectangle.Style>
<Style TargetType="Rectangle">
<Style.Triggers>
<DataTrigger Binding="{Binding teamgreen}" Value="True">
<Setter Property="Fill" Value="{StaticResource tankGreen}" />
</DataTrigger>
<DataTrigger Binding="{Binding teamgreen}" Value="False">
<Setter Property="Fill" Value="{StaticResource tankBlue}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
tankGreen 和 tankBlue 看起来像这样
<BitmapImage x:Key="tankBlue" UriSource="..\Images\tankBlue.png" />
<BitmapImage x:Key="tankGreen" UriSource="..\Images\tankGreen.png" />
它们在我使用时工作正常
<Rectangle.Fill>
<ImageBrush ImageSource="{DynamicResource tankBlue}" />
</Rectangle.Fill>
我想我只是不知道如何将 ImageBrush 合并到数据触发器的样式中 setter
您可以像设置 Rectangle.Fill
一样设置 Setter.Value
:
<DataTrigger Binding="{Binding teamgreen}" Value="True">
<Setter Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="{DynamicResource tankGreen}" />
</Setter.Value>
</Setter>
</DataTrigger>
我有一个矩形,我想用基于 属性 的不同图片填充它。我创建了一个 bool 变量和样式的绑定。但是代码不起作用。
错误:无法将 ystem.Windows.Media.Imaging.BitmapImage 转换为 System.Windows.Media.Brush
<Rectangle Width="20" Height="20" Canvas.Left="{Binding x}" Canvas.Top="{Binding y}">
<Rectangle.Style>
<Style TargetType="Rectangle">
<Style.Triggers>
<DataTrigger Binding="{Binding teamgreen}" Value="True">
<Setter Property="Fill" Value="{StaticResource tankGreen}" />
</DataTrigger>
<DataTrigger Binding="{Binding teamgreen}" Value="False">
<Setter Property="Fill" Value="{StaticResource tankBlue}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
tankGreen 和 tankBlue 看起来像这样
<BitmapImage x:Key="tankBlue" UriSource="..\Images\tankBlue.png" />
<BitmapImage x:Key="tankGreen" UriSource="..\Images\tankGreen.png" />
它们在我使用时工作正常
<Rectangle.Fill>
<ImageBrush ImageSource="{DynamicResource tankBlue}" />
</Rectangle.Fill>
我想我只是不知道如何将 ImageBrush 合并到数据触发器的样式中 setter
您可以像设置 Rectangle.Fill
一样设置 Setter.Value
:
<DataTrigger Binding="{Binding teamgreen}" Value="True">
<Setter Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="{DynamicResource tankGreen}" />
</Setter.Value>
</Setter>
</DataTrigger>