2012-04-04 4 views
0

私はWPFが初めてです。私はこのようなことをしたい: 私はアプリケーション内に複数のダイアログを持っています。私は、必要な背景、タイトルバー、およびすべてのダイアログに必要な閉じるボタンを持つ1つのテーマを作成しました。ダイアログのサイズとコントロールは異なります。 例:DialogWindowは、ウィンドウコントロール用に作成したテーマです。WPFテーマをあらかじめ定義しているダイアログにコントロールを追加するにはどうすればいいですか?

(このDialogThemeを適用する)MainWindowでは、このテーマを見ることができます。 しかし、私はそれにコントロールを追加しようとすると、彼らはテーマに表示されません。

<Window x:Class="Example.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Height="391" Width="616" 
    Style="{DynamicResource DialogWindow}"> 
    <Window.Resources>   
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Themes/DialogsTheme.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Window.Resources> 
</Window> 

わかりませんが、どうしたらいいですか。どんな助けもありがとう。あなたはスタイルを実現する取得するために作成した各ウィンドウに以下の行を追加する必要があり

+0

「テーマに表示されないコントロールを追加する」とはどういう意味ですか?どのようなコントロールですか?あなたは何を期待していますか? ...あなたが言及したスタイルやテーマは、特定のコントロールタイプ...この場合はウィンドウ...他のコントロールタイプは独自のテーマが必要です。 – BenjaminPaul

+0

私が言及したように、すべてのダイアログに適用するテーマを作成しました。テーマには、背景、カスタマイズされたタイトルバー、およびウィンドウのカスタマイズが含まれています。最上部にある最大化、最小化、および閉じるボタン。ここでは、このテーマをすべてのダイアログに基本的な外観として適用したいと思います。それぞれの機能のために、すべてのダイアログボックスにコントロール*を設定したいと考えています。あらかじめ定義されたテーマにこれらのコントロールを追加すると、そのテーマには表示されません。 – snstuff

答えて

0

は最後に答えを得た、のContentPresenterは、ウィンドウのテーマのためのクライアント領域として働く必要なもの、です。

<ContentPresenter Grid.Row="1" Grid.ColumnSpan="2" x:Name="ClientArea" /> 
0

が...

<Window...Style="{DynamicResource DialogWindow}"> 
<Window.Resources>   
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Themes/DialogsTheme.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 
+0

私はすべてのダイアログでそのスタイルにアクセスできます。問題は、そのテーマに背景を適用したコントロールを追加すると表示されないことです。それが示すのはテーマ/スタイルだけです。 – snstuff

関連する問題