iluxa1810 Asked:2022-03-31 15:40:56 +0800 CST2022-03-31 15:40:56 +0800 CST 2022-03-31 15:40:56 +0800 CST 如何解决重复样式的问题? 772 一般来说,我有一个由图像和工具提示组成的按钮: 问题是每个这样的按钮都需要样式... 您似乎无法在样式的 TagetType 中指定应用的各种条件。 有什么办法可以解决这个问题? 有一个想法可以进行继承,但是如果您做得很聪明,那么您需要禁止将任何东西放入这样的按钮中,而在我看来,这就是痔疮...... c# 1 个回答 Voted Best Answer Андрей NOP 2022-04-04T14:03:15+08:002022-04-04T14:03:15+08:00 <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>
1 个回答