2016-12-27 1 views
0

У меня есть кнопка переключения, содержащая путь xaml.UWP - Как связать путь Xaml в ToggleButton с цветом переднего цвета ToggleButton

Я хочу установить цвет заливки для цвета переднего плана кнопки переключения, так что, когда кнопка не нажимается, ее черный цвет, когда он нажимает белый.

 <ToggleButton> 
      <Path Data="M5.08333,4.5 L10.8333,4.33333 L17.3749,8.24242 L6.97926,10.6125 C6.97926,10.6125 7.35392,5.18685 5.08333,4.5 z" Fill="#FFF4F4F5" Height="6.291" Stretch="Fill" UseLayoutRounding="False" Width="12.292"/> 
     </ToggleButton> 

Как я могу это сделать>

ответ

0

Вы можете создать ControlTemplate для ToggleButton, а затем настроить Fill свойство для shapes, где в каждом VisualState.

<Page.Resources> 
    <ControlTemplate x:Key="ToggleButtonWithShapes" TargetType="ToggleButton"> 
     <Border 
      Background="{TemplateBinding Background}" 
      BorderBrush="{TemplateBinding BorderBrush}" 
      BorderThickness="{TemplateBinding BorderThickness}"> 
      <Grid> 
       <Path 
        x:Name="shapes" 
        Width="60" 
        Height="20" 
        Data="M5.08333,4.5 L10.8333,4.33333 L17.3749,8.24242 L6.97926,10.6125 C6.97926,10.6125 7.35392,5.18685 5.08333,4.5 z" 
        Fill="Black" 
        Stretch="Fill" 
        UseLayoutRounding="True" /> 
      </Grid> 
      <VisualStateManager.VisualStateGroups> 
       <VisualStateGroup x:Name="CommonStates"> 
        <VisualState x:Name="Pressed"> 
         <VisualState.Setters> 
          <Setter Target="shapes.Fill" Value="White" /> 
         </VisualState.Setters> 
        </VisualState> 
        <VisualState x:Name="CheckedPressed"> 
         <VisualState.Setters> 
          <Setter Target="shapes.Fill" Value="Black" /> 
         </VisualState.Setters> 
        </VisualState> 
       </VisualStateGroup> 
      </VisualStateManager.VisualStateGroups> 
     </Border> 
    </ControlTemplate> 
</Page.Resources> 
+0

Спасибо за ths. Это работает, но я потерял все анимации по умолчанию таким образом. Что мне нужно сделать, чтобы сохранить эти анимации? –

+0

@ariqyad Вы можете обратиться к [ToggleButton styles and templates] (https://msdn.microsoft.com/en-us/library/windows/apps/mt299157.aspx) и создать 'Storyboard' для каждого VisualState. –

0

Вам нужно изменить VisualStates в стиле вашего ToggleButton в.

+0

Как я могу ссылаться на свой путь из VisualState? –

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