1

MVVM パターンを使用して小さな WPF アプリケーションを作成しています。

ボタンのスタイル リソースをメイン ウィンドウに設定し、それらをビューのボタンに適用したいと考えています。問題は、一部のボタンがトリガー付きのスタイルになっていることです。だから私はこのスタイルを一般的なものから継承したいと思います

ここに私のメインウィンドウコードがあります:

 <Window.Resources>
    <DataTemplate DataType="{x:Type vm:HomeViewModel}">
        <views:HomeView/>
    </DataTemplate>
    <DataTemplate DataType="{x:Type vm:DetailReportViewModel}">
        <views:DetailReportView/>
    </DataTemplate>
    <DataTemplate DataType="{x:Type vm:TransferViewModel}">
        <views:TransferView/>
    </DataTemplate>
    <Style TargetType="{x:Type Button}">
        <Setter Property="Margin" Value="5"/>
        <Setter Property="MinWidth" Value="30"/>
        <Setter Property="Foreground" Value="Red"/>

    </Style>
    <Style TargetType="{x:Type ComboBox}">
        <Setter Property="Margin" Value="5"/>
    </Style>
   </Window.Resources>

これが私のビュー/ユーザーコントロールへのボタンXAMLです

<Button Content="Delete" Command="{Binding DeleteReportCommand}">
            <Button.Style>
                <Style TargetType="{x:Type Button}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Mode}">
                            <DataTrigger.Value>
                                <vm:Mode>Add</vm:Mode>
                            </DataTrigger.Value>
                            <Setter Property="Visibility" Value="Collapsed"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding Mode}">
                            <DataTrigger.Value>
                                <vm:Mode>Edit</vm:Mode>
                            </DataTrigger.Value>
                            <Setter Property="Visibility" Value="Visible"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>

BasedOn="{StaticResource {x:Type Button} を使用して継承しようとしましたが、機能していないようです (img を参照)

ここに画像の説明を入力

キー名を試してみましたが、同じビューにないため、静的リソースはキー名を見つけられません。また、BasedOn は動的リソースを受け入れていません。不足しているものはありますか?

ありがとうございました

4

1 に答える 1

0

すべてのカスタム スタイルを個別のリソース ディクショナリ ファイルに配置し、それを usercontrol.resources に追加できます。

これを参照してください: http://www.codeproject.com/Articles/35346/Using-a-Resource-Dictionary-in-WPF

または、それらすべてを app.xaml (Application.Resources) に入れることもできます。

これを参照してください: http://msdn.microsoft.com/en-us/library/system.windows.resourcedictionary.aspx

于 2012-05-03T04:58:07.637 に答える