0

私は WPF にかなり慣れていないので、このアプリケーションへの最適なアプローチを見つけようとしている本を持ってここに座っています。

タイトル バーはクライアント領域の一部ではないため、独自のタイトル バーを作成しています。

これを何らかのリソースにして、作成するすべての新しいウィンドウに適用するには、どの方法が最も簡単でしょうか?

<Application.Resources>
    <Style x:Key="WindowTheme">
        <Setter Property="Window.WindowStyle" Value="None"/>

    </Style>
    <!--Would I create a user control here for the title bar/border and title bar buttons? Or would it be a style?-->
</Application.Resources>
4

1 に答える 1

0

WPF では、スタイルを使用する方法が 2 つあります。名前付きスタイルと型付きスタイルです。名前付きスタイルにはx:Key="..."属性があります。型付きスタイルには名前はありませんが、TargetType="..."属性があります (Rem: 名前付きスタイルは TargetType を持つことができ、非常に多くの場合実際に使用されるため、名前付きスタイルと名前なしスタイルの方が正確です)。TargetType型付きスタイルは、(派生型ではない)型であるスコープ内のすべてのコントロールに自動的に適用されます。

<Style TargetType="{x:Type Window}">
    <Setter Property="Background" Value="Blue" />
</Style>

独自のウィンドウを作成するには、そのテンプレート プロパティをスタイルの UserControl に設定できます。

<Style TargetType="{x:Type Window}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>

            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

コントロール テンプレートを実装する専門的な方法は、「ゼロから」実装することです。これは、から派生した UserControl を使用しないことを意味しWindowます。これを行うには、ウィンドウのビジュアル ツリーを定義し、WPF 機能のTemplatePartsを使用して、コントロール テンプレートのどの部分がウィンドウのどの機能を担当するかを定義します。

これは、あなたがやりたいことをかなり正確に説明するチュートリアルです。

CodeProject チュートリアル

于 2013-04-23T07:05:25.440 に答える