2011-02-10 102 views
1

私はカスタムコントロールの外観をgeneric.xamlで再定義できるので、作成したいと思います。しかし、私の問題は、(デザイナを使用して)カスタムコントロールの外観を最初にどのように設計しているかです。ユーザーコントロールとは異なり、xaml/designerウィンドウが添付されていません。コードですべてを設計する必要がありますか?WPF:デザイナーでカスタムコントロールの外観を定義する方法は?

+0

Expression Blendを使用すると、デザインサーフェスが無効になります。 –

答えて

2

あなたがコントロールのためCustomTemplate/Styleを定義し、次にGeneric.xaml辞書にそのようなすべての辞書をマージするResourceDictionaryXAMLファイルを作成します。

例えば、コントロールのスタイルを定義:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/client/2007" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Style TargetType="{x:Type Button}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Grid x:Name="RootElement" > 
         <ContentPresenter 
          Content="{TemplateBinding Content}" 
          ContentTemplate="{TemplateBinding ContentTemplate}" 
          Foreground="{TemplateBinding Foreground}" 
          VerticalAlignment="Center" HorizontalAlignment="Center"/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ResourceDictionary> 

とInをごGeneric.xaml

<ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="MyButtonStyle.xaml"/> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 

結果は、タイプButtonのコントロールは今でも中に、指定されたスタイルでレンダリングされていることをする必要がありますIDEデザイナー

+0

これは私のクエストにはお答えしません – foreyez

+0

スタイルを更新すると、すべてのスタイルキャリアがデザイナー_に変更を行います。 _inline_を編集してXAML/Displayの分割画面を表示したい場合は、カスタムコントロール項目を追加してデザイナーでデザインし、それをスタイルにリッピングしますが、これはやや複雑です。 –

関連する問題