2015-09-22 2 views
0

Я работаю над проектом 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; 
} 

Есть ли способ изменить все свойства кнопок из одного места? Есть ли какой-нибудь пример?

+2

вы можете написать стиль для кнопки в App.xaml и применить стиль для всех кнопок, которые вы хотите использовать – Karuppasamy

ответ

2

В 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> 
+0

я могу видеть App.config, но где это App.xaml? – qmaruf

+0

Файл xaml будет «конструктором» для файла cs, который вы создаете, где вы можете перетаскивать + изменять/изменять свойства элементов пользовательского интерфейса. Файл xaml.cs будет частичным классом этого кода. App.xaml должен быть в вашем проекте рядом с вашим app.config и вашим файлом xaml. App.xaml позволит вам определить ресурсы приложений для вашей программы. – Vistari

1

Мой опыт работы с 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}" />

Смежные вопросы