[英]Styling of WPF Controls
我有一個WPF Win表格應用程序。 我想將樣式應用於WPF中的所有控件。 例如我當前的按鈕看起來像
<Button Content="Add" Width="147" Height="31" Margin="490,10,10,10" />
我要為按鈕設置樣式,類似於以下內容(帶有彎曲的邊框)
我該如何對所有控件執行類似的樣式。
首先,讓我們澄清您的要求。 我的合格猜測是,您正在尋找帶有圓角的WPF Button的樣式解決方案,如此處的計算器應用程序所示: http : //webinfocentral.com/VOLTA/Manual.aspx如果是這樣,那么至少有以下兩種解決方案:
創建ResourceDictionary文件並在WPF XAML中引用它
如以下代碼片段所示,添加按鈕樣式,該按鈕樣式將使圓角(注意屬性<Border.CornerRadius>2</Border.CornerRadius
>)和3種特定於正常外觀,鼠標懸停和按下Button狀態的視覺/漸變效果:
<Style TargetType="Button" x:Key="Button_Default">
<Setter Property="Foreground" Value="#202020"/>
<Setter Property="FontSize" Value="12" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="ButtonBackground" BorderBrush="#606060">
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/>
<Border.BorderThickness>0</Border.BorderThickness>
<Border.CornerRadius>2</Border.CornerRadius>
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#f5f5f5" Offset="0" />
<GradientStop Color="#c5c5c5" Offset="0.93" />
<GradientStop Color="#606060" Offset="0.93" />
<GradientStop Color="#404040" Offset="1" />
</LinearGradientBrush>
</Border.Background>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="FontWeight" Value="Bold" />
<Setter TargetName="ButtonBackground" Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" >
<GradientStop Color="#f5f5f5" Offset="0" />
<GradientStop Color="#c5c5c5" Offset="0.81" />
<GradientStop Color="#606060" Offset="0.81" />
<GradientStop Color="#404040" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
<Setter TargetName="ButtonBackground" Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" >
<GradientStop Color="#e5e5e5" Offset="0" />
<GradientStop Color="#dfdfdf" Offset="0.75" />
<GradientStop Color="#606060" Offset="0.75" />
<GradientStop Color="#303030" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
注意:根據您的情況,您可以添加屬性:
<Setter Property="Height" Value="147"/>
<Setter Property="Width" Value="31"/>
<Setter Property="Margin" Value="490,10,10,10"/>
在XAML中添加對樣式的按鈕引用,如下所示:
或者,您可以通過如下添加對ResourceDictionary的引用,將樣式添加到C#中的按鈕(在此示例中,您必須分配/使用按鈕名稱):
[ButtonName].Style = this.Resources["Button_Default"] as Style;
希望這會有所幫助。 Rgds,亞歷克斯
您可以使用此代碼。 這可能對您有幫助。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication8.Window1"
x:Name="Window"
Title="Window1"
Width="640" Height="480">
<Window.Resources>
<ControlTemplate x:Key="ButtonControlTemplate1" TargetType="{x:Type Button}">
<Border Height="30" Width="150" BorderBrush="RoyalBlue" BorderThickness="2">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="WhiteSmoke" Offset="0.347"/>
<GradientStop Color="#FF7D91C0" Offset="0.656"/>
</LinearGradientBrush>
</Border.Background>
<ContentPresenter TextElement.FontSize="15" TextElement.FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Button Content="OK" Margin="172,43,269,0" VerticalAlignment="Top" Template="{DynamicResource ButtonControlTemplate1}"/>
</Grid>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.