[英]How to change properties of all buttons
我正在一個C#WPF項目(VS 2010)中工作,該項目具有各種形式的一些按鈕,並希望為所有這些按鈕設置一些公共屬性(例如:粗體文本,懸停時更改顏色)。 但是,我可以從“屬性”選項卡設置屬性,並使用以下代碼一個一個地懸停行為。
private void btnOne_MouseHover(object sender, EventArgs e)
{
(sender as Button).BackColor = Color.Orange;
}
private void btnTwo_MouseLeave(object sender, EventArgs e)
{
(sender as Button).BackColor = Color.LightGray;
}
有沒有辦法從一個地方更改所有按鈕的屬性? 有可用的例子嗎?
在WPF中,您可以在XAML中進行操作。
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Orange"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="LightGray"/>
</Trigger>
</Style.Triggers>
</Style>
我對WPF的體驗並不完美,但是您可以將MouseHover和MouseLeave設置為XAML樣式嗎(我不是像在手機上那樣在IDE中從頭開始編寫此代碼的,所以可能並不完全正確):
<Style x:Key="MyStyle" TargetType="Button">
<Setter Property="Background" Value="GRAY_COLOUR" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="ORANGE_COLOUR" />
</Trigger>
</Style.Triggers>
</Style>
用該顏色的十六進制值替換GRAY_COLOUR
和ORANGE_COLOUR
或將它們定義為靜態資源。 然后將該樣式分配給所有適用的按鈕:
<Button Style="{StaticResource MyStyle}" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.