Как можно решить проблему с повторяющейся стилизацией?
В общем, есть у меня кнопки, которые состоят из картинки и тултипа внутри:
Проблема в том, что каждой такой кнопке нужно прописать Style...
Вроде, в TagetType стиля нельзя указать различные условия для применения.
Какие могут быть решения данной проблемы?
Есть мысля-сделать наследование, но если делать по умному, то нужно запрещать в такую кнопку что-либо сувать, а это по моему геморно...
Ответы (1 шт):
Автор решения: Андрей NOP
→ Ссылка
<Window.Resources>
<!-- Ваша библиотека стилей -->
<Style x:Key="BaseButton" TargetType="Button">
<Setter Property="Width" Value="50"/>
<Setter Property="Height" Value="50"/>
<Setter Property="Margin" Value="5"/>
</Style>
<Style x:Key="RedButton" TargetType="Button" BasedOn="{StaticResource BaseButton}">
<Setter Property="Background" Value="Red"/>
</Style>
<Style x:Key="GreenButton" TargetType="Button" BasedOn="{StaticResource BaseButton}">
<Setter Property="Background" Value="Green"/>
</Style>
</Window.Resources>
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<!-- Для всех кнопок в этом контейнере по умолчанию
будет использоваться стиль RedButton -->
<Style TargetType="Button" BasedOn="{StaticResource RedButton}"/>
</StackPanel.Resources>
<Button/>
<Button/>
<Button/>
<Button/>
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<StackPanel.Resources>
<!-- Для всех кнопок в этом контейнере по умолчанию
будет использоваться стиль GreenButton -->
<Style TargetType="Button" BasedOn="{StaticResource GreenButton}"/>
</StackPanel.Resources>
<Button/>
<Button/>
<Button/>
<Button/>
</StackPanel>
</Grid>

