我有一个WPF按钮是这样定义的。
<Button Style="{StaticResource RevertButtonStyle}" />
下面是它的样式
<Style x:Key="RevertButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Height" Value="25" />
<Setter Property="Width" Value="20" />
<Setter Property="Margin" Value="3,0,0,0" />
</Style>
我如何改变风格,指定内容使用 "revert.png "的图片?
谢谢,我有一个WPF按钮是这样定义的:样式是这样的:我如何改变样式来指定内容使用名为 "revert.png "的图片?
你不能使用设置Content属性为一个实例的 Image
控件,因为这样的话,该图像可以被多个Button使用。这将导致 "visual已经是另一个visual的子代 "的异常。
相反,你可以使用一个DataTemplate,就像这样。
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Image Source="revert.png" />
</DataTemplate>
</Setter.Value>
</Setter>
显然,你可能需要调整图像的源URI。
在我的应用程序中,我定义了一个 ImageButton
控件,指定了一个 ImageSource
属性。
这就是这样的风格。
<Style TargetType="{x:Type controls:ImageButton}">
<Setter Property="ForceCursor" Value="True" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="ToolTip" Value="{Binding Path=Caption, RelativeSource={RelativeSource Mode=Self}}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type controls:ImageButton}">
<Image Width="16" Height="16" Source="{Binding Path=ImageSource, RelativeSource={RelativeSource Mode=TemplatedParent}}" Name="image" />
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="image" Property="Opacity" Value="0.3" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但在你的情况下,如果你想在所有的图片中使用相同的图片 Button
对象具有一定 Style
集,您可以简单地使用 <Image Source="pack://application:,,,/My.Assembly.Name;component/Icons/revert.png" />
在 Template
如果你要使用的图片已经作为资源包含在应用程序中。