2015-04-16 3 views
0

Еще новичок в WPF, пожалуйста, со мной. У меня есть пользовательский элемент управления, который содержит два прямоугольника и несколько текстовых полей. Я хочу изменить цвет фона Rectangle на MouseOver.Изменить стиль дочернего элемента управления на MouseOver в WPF

добавить триггер следующим образом:

<Rectangle 
      Grid.Column="1" 
      Fill="#FF383838" 
      Grid.ColumnSpan="3" 
      Margin="0,4,4,4"> 

      <Rectangle.Style> 
       <Style TargetType="{x:Type Rectangle}"> 
        <Setter Property="Fill" Value="#FF383838" /> 
        <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Fill" Value="#FF575757" /> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </Rectangle.Style> 

     </Rectangle> 

Но так как прямоугольник является частью моего контроля, я предполагаю, что это событие не стрельбы.

ответ

1

Настройка свойства через XAML будет применяться к свойствам стиля, которые вы пытаетесь установить. Чтобы это исправить, удалить Fill=#FF383838, так что вы должны иметь:

<Rectangle Grid.Column="1" 
      Grid.ColumnSpan="3" 
      Margin="0,4,4,4"> 
//... rest of code here 
1

Попробуйте этот код:

<Window.Resources> 
     <Style TargetType="Rectangle" x:Key="test"> 
      <Setter Property="Fill" Value="#FF383838" /> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Fill" Value="#FF575757" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Window.Resources> 
    <Rectangle Style="{StaticResource test}" /> 
Смежные вопросы