2016-07-20 17 views
0

私のプロジェクトのMainWindowには枠線が付いたコントロールがたくさんありますので、ウィンドウ内のすべての境界線に適用するスタイルをWindow.Resourcesで作成しました。私はそのマージンを5に設定し、予想外のことが起こった。ウィンドウの境界線に予期しないスタイル効果があります

実際のウィンドウの境界線にも適用され、その結果、ウィンドウに黒い輪郭が表示されるようです。

これをテストするために、私は新しいプロジェクトを作成し、このコードを追加して同じ結果を得ました。どんなに奇妙に見えても、それはそれが使うマージンだと思われます。境界線の太さや色ではありません。

<Window.Resources> 
    <Style TargetType="{X:Type Border}"> 
     <Setter Property="BorderBrush" Value="Aqua"/> 
     <Setter Property="BorderThickness" Value="5"/> 
     <Setter Property="Margin" Value="5"/> 
    </Style> 
</Window.Resources> 

質問は、どのようにこの境界にマージンを設定してスタイルを乗り越えることができますか?

私はこのスタイルにキーを追加することができますが、このスタイルを使用するにはすべての罫線を編集する必要があります。この特定の境界線で余白を簡単に設定できないのは少し間違っているようです。

ヘルプ/ガイダンスが高く評価されました。

P.S.すべてのタイプミスや書式問題のためにお詫びします。私の携帯電話では、これをコードラップトップでインターネットにアクセスできないように入力してください。

答えて

1

は、私はそれを修正するのは簡単でなければなりません知っていた

<Window 
    ... 
    > 
    <Grid x:Name="MainContainer"> 
     <Grid.Resources> 
      <Style TargetType="{x:Type Border}"> 
       <Setter Property="BorderBrush" Value="Aqua"/> 
       <Setter Property="BorderThickness" Value="5"/> 
       <Setter Property="Margin" Value="5"/> 
      </Style> 
     </Grid.Resources> 
     ... 
    </Grid> 
</Window> 
+0

MainContainerリソースへのウィンドウからスタイルを移動してみてください!私はそれがいくつかのやり方でウィンドウの境界線にどのように影響するのか、それは他のものではないが、それはまだ非常に奇妙であると感じている – Notts90

+1

@Robert [Snoop](https://snoopwpf.codeplex.com)を使ってビジュアルツリーに潜入することができます。 MainContainerのBorderBrushとBorderThicknessがParentTemplateによって設定されていることを示しています。これは、マージンだけがスタイルによって影響を受ける理由です。 – Funk

+0

お手数ですが、ありがとうございます。 – Notts90

関連する問題