0
我是WPF的新手,我创建了以下简单样式示例。但它不能正常工作,按钮的内容不显示,但我仍然可以点击它。谁能告诉我它为什么坏了?WPF:如何使用BasedOn风格
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderBrush="Blue"
BorderThickness="5"
Background="Aqua"
Width="80"
Height="40">
<ContentPresenter></ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Grid" x:Name="GridWithMarginStyle">
<Setter Property="Margin" Value="12"></Setter>
</Style>
</Window.Resources>
<StackPanel>
<StackPanel.Resources>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<EventSetter Event="Button.Click" Handler="ButtonHandler" />
<Setter Property="Background" Value="Red"></Setter>
<Setter Property="Foreground" Value="White"></Setter>
</Style>
</StackPanel.Resources>
<Button Name="OkBtn">OK</Button>
<Button Name="CancelBtn" Click="CancelBtn_Click">Cancel</Button>
</StackPanel>
感谢您的快速回答。我必须使用 来代替 才能使其工作。但你给我一些想法该怎么做。谢谢。 –
SunnyRain
这很奇怪。我尝试了.NET Framework 4.0的XAML,并且它可以工作。我可以问你使用哪个框架版本吗?无论如何,'TemplatedParent'应该可以工作在任何你使用的版本上。你的解决方案没有错,但是AFAIK的RelativeSource TemplatedParent比使用'TemplatedParent'有点慢。 –