我對 WPF 很陌生。我已經熟悉ControlTemplate,ContentPresenter和其他一些部分,但我正在努力創建一個帶有圓角的按鈕,如定義自Window.Resources(或可能是單獨的樣式檔案)。
無論如何,當我將它添加到<Button/>標簽時,我會得到一個圓角按鈕:
<Button.Resources>
<Style TargetType="Border">
<Setter Property="CornerRadius" Value="5"/>
</Style>
</Button.Resources>
但是,當我嘗試將其包含在Window.Resources按鈕中時,將不會應用邊框樣式:
<ControlTemplate x:Key="roundbutton" TargetType="Button">
<Grid>
<Rectangle Fill="{TemplateBinding Background}" Stroke="{TemplateBinding Foreground}"/>
<Border CornerRadius="5"/>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
這對我來說看起來不正確,但我想我不知道在哪里添加這樣的規范以CornerRadius使其適用于按鈕。我確實看到了這篇文章,如何在 WPF 中創建/制作圓角按鈕?但這有點超出我的想象。我只想對我的應用程式中的所有按鈕進行四舍五入!
uj5u.com熱心網友回復:
ControlTemplate 中的邊框不可見,因為您既沒有設定它的背景,也沒有設定它的 BorderBrush。
你可以有如下所示的東西。但是請注意,使用像這樣的簡單 ControlTemplate 按鈕會丟失其狀態的所有可視化,例如focused、mouse-over、pressed等。
<ControlTemplate x:Key="roundbutton" TargetType="Button">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="5">
<ContentPresenter/>
</Border>
</ControlTemplate>
您可以改為宣告一個默認的按鈕樣式(即沒有 的樣式資源x:Key)應用您的原始邊框樣式,如下所示:
<Style TargetType="Button">
<Style.Resources>
<Style TargetType="Border">
<Setter Property="CornerRadius" Value="5"/>
</Style>
</Style.Resources>
</Style>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/481281.html
標籤:wpf
上一篇:自定義WPF控制元件中的資料系結
