У меня вопрос по стилям. В моем универсальном приложении Windows у меня есть определенные кнопки. Эти кнопки имеют дочернюю панель стека, а дочерняя панель стека имеет изображение. Цель этого состоит в том, что кнопка должна содержать изображение.
Теперь мой работодатель хочет игнорировать настройки темы пользователя. Поэтому всякий раз, когда нажимается кнопка, он не хочет, чтобы цвет фона кнопки менялся. Единственный способ, который я нашел до сих пор, - это стиль. Однако, когда я использую стиль, кнопка отображается без дочерних элементов. Стиль, который я сделал, выглядит так:
<Style x:Key="Button_style" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Pressed">
</VisualState>
<VisualState x:Name="Disabled"/>
<VisualState x:Name="PointerOver">
</VisualState>
<VisualState x:Name="Pointerleave">
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused"/>
<VisualState x:Name="PointerFocused"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Это было доказательством концепции. Однако, поскольку дети кнопок исчезают, я не могу продолжать. Как бы я переписал этот стиль, чтобы дочерние элементы кнопки оставались там, где они должны быть?
Вот пример кода кнопки, которая у меня есть:
<Button Name="MyButton" Click="MyButton_Click" ClickMode="Press" HorizontalAlignment="Center" VerticalAlignment="Stretch" >
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left" >
<Image Name="MyImage" x:Uid="MyImage" Source="" VerticalAlignment="Top" HorizontalAlignment="Left" MaxWidth="30" />
</StackPanel>
</Button>