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'有點慢。 –