2015-01-28 3 views
0

Я добавил эллипс на кнопку. , но на данный момент мышь над этой кнопкой мне нужно изменить фон. , так что не удалось сделать с обычным триггером, т. Е. С настройкой свойства фона на мыши над событием.Как изменить цвет elipse при нажатии кнопки WPF (C#, wpf)

<Style x:Key="RButton" TargetType="Button"> 
      <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Grid>       
         <Ellipse x:Name="Elipse1" Fill="Red" ></Ellipse> 
         <ContentPresenter HorizontalAlignment="Center"    VerticalAlignment="Center"></ContentPresenter> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
      </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background" Value = "Orange"/> 
       </Trigger> 
     </Style.Triggers> 
    </Style> 
+0

мы не можем изменить элемент кнопки на его конце. Также любая помощь – user3138481

+0

вы даже сделали поиск в Google. TargetName = "Elipse1" –

ответ

0

Вы можете использовать TemplateBinding внутри шаблона, чтобы связать Button.Background свойства и установить значение по умолчанию в качестве другого Setter из ваших Style

<Style x:Key="RButton" TargetType="Button"> 
    <Setter Property="Background" Value="Red"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
     <ControlTemplate TargetType="Button"> 
      <Grid>       
       <Ellipse x:Name="Elipse1" Fill="{TemplateBinding Background}" /> 
       <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
      </Grid> 
     </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
     <Setter Property="Background" Value="Orange"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

или, если вы не хотите использовать Button.Background свойство, вы можете настроить таргетинг Ellipse по имени

<Setter TargetName="Elipse1" Property="Background" Value="Orange"/> 
0

Попробуйте Style :

<Style x:Key="RButton" TargetType="Button"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Grid> 
        <Ellipse x:Name="Elipse1" Fill="Red" ></Ellipse> 
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Fill" Value = "Orange" TargetName="Elipse1" ></Setter> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
Смежные вопросы