在我的C# / WPF / .NET 4.5应用程序中,我有带有图像的按钮,我是按照以下方式实现的:
<Button Style="{StaticResource BigButton}">
<StackPanel>
<Image Source="Images/Buttons/bt_big_save.png" />
<TextBlock>save</TextBlock>
</StackPanel>
</Button>
我有一个资源字典 UIStyles.xaml,其中我声明了以下内容:
<Style TargetType="Button" x:Key="BigButton">
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Height" Value="80" />
<Setter Property="Width" Value="80" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border"
CornerRadius="5"
Background="#FF415360">
<ContentPresenter x:Name="ButtonContentPresenter"
VerticalAlignment="Center"
HorizontalAlignment="Center">
<ContentPresenter.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
</Style>
<Style TargetType="Image">
<Setter Property="Width" Value="10" />
<Setter Property="Margin" Value="10" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
光标、高度、边框等属性都可以正常工作,但我无法样式化 TextBlock
和 Image
。
具体来说,需要像这样呈现:
结果看起来像这样(忽略颜色差异):
我之前看过类似的问题,但解决方案使用了不同的方法(我不想创建自定义用户控件,除了这一个需求,我的全部需求都在当前代码中得到覆盖,重新编写将是一种麻烦)。我只需要修复我的Style
,使TextBlock
居中,Image
缩小并居中即可。
我该如何重新编写Style
以纠正按钮的外观?
<ContentPresenter.Resources>
中的样式没有被应用。将它们移动到<ControlTemplate.Resources>
中可以使 UI 看起来符合预期。 - Rachel