実行時にスタイルセッターを変更する方法を教えてください。 Material Design for XAMLを使用しています。 ボタンを押すと、明と暗のモードを切り替えることができます。 Snackbarの背景が変更されました(Material Designの作成者が作成したスクリプトを使用して行いました)が、「OK」ボタンの色は変更されません。白い石灰は分かりにくいです。ですから、私はLime OKをPurple OKに変更したいと思います。WPFスタイルを実行時に変更します
ここで最初のコード
<UserControl.Resources>
<Style BasedOn="{StaticResource MaterialDesignSnackbarActionButton}" x:Key="SnackbarThemeChangedStyle" TargetType="Button">
<Setter Property="Foreground" Value="{DynamicResource SecondaryAccentBrush}"/>
</Style>
</UserControl.Resources>
.....
<materialDesign:Snackbar x:Name="SnackbarMaximumCharacters" HorizontalAlignment="Stretch" VerticalContentAlignment="Bottom" ActionButtonStyle="{StaticResource SnackbarThemeChangedStyle}" IsActive="True">
<materialDesign:SnackbarMessage Content="The maximum number of characters is 15" ActionContent="OK" ActionClick="SnackbarMessage_ActionClick"/>
</materialDesign:Snackbar>
(画像1)私はダークモードにスイッチを変更するまでhttps://i.imgur.com/TuqtGO1.png
すべてが大丈夫作品です。 私は、次のコードを持つようにしたいdarkmodeに切り替え:
<UserControl.Resources>
<Style BasedOn="{StaticResource MaterialDesignSnackbarActionButton}" x:Key="SnackbarThemeChangedStyle" TargetType="Button">
<Setter Property="Foreground" Value="{DynamicResource PrimaryHueMidBrush}"/>
</Style>
</UserControl.Resources>
.....
<materialDesign:Snackbar x:Name="SnackbarMaximumCharacters" HorizontalAlignment="Stretch" VerticalContentAlignment="Bottom" ActionButtonStyle="{StaticResource SnackbarThemeChangedStyle}" IsActive="True">
<materialDesign:SnackbarMessage Content="The maximum number of characters is 15" ActionContent="OK" ActionClick="SnackbarMessage_ActionClick"/>
</materialDesign:Snackbar>
(画像2)
https://i.imgur.com/44IUanD.png(
私は書き込みでacomplishすることができ、同じ結果:ある
<materialDesign:Snackbar x:Name="SnackbarMaximumCharacters" HorizontalAlignment="Stretch" VerticalContentAlignment="Bottom" ActionButtonStyle="{StaticResource MaterialDesignSnackbarActionButton}" IsActive="True">
<materialDesign:SnackbarMessage Content="The maximum number of characters is 15" ActionContent="OK" ActionClick="SnackbarMessage_ActionClick"/>
</materialDesign:Snackbar>
最初のコードボックスに相当するもの:
<materialDesign:Snackbar x:Name="SnackbarMaximumCharacters" HorizontalAlignment="Stretch" VerticalContentAlignment="Bottom" ActionButtonStyle="{StaticResource MaterialDesignSnackbarActionMidButton}" IsActive="True">
<materialDesign:SnackbarMessage Content="The maximum number of characters is 15" ActionContent="OK" ActionClick="SnackbarMessage_ActionClick"/>
</materialDesign:Snackbar>
番目のコードボックスに
実行時に手作業でコードを修正すると、すべてが機能し、変更が行われますが、コードで実行すると変更は行われません。
私はボタンを押したときにこの変更をコードで行うことはできますか?
あなたは 'StaticResource'の代わりに' DynamicResource'を使ってみましたか? – XAMlMAX
はい、それはうまくいきませんでした – StefanP