2011-07-08 4 views
0

theseのガイドラインに従っています。 このため、アプリケーションレベルのスタイルやプロパティを設定して、コントロール間のマージンを設定する必要があります。アプリケーションレベルのマージンを設定するプロパティ

私はターゲットオブジェクトを私に尋ねるので、スタイルを通して余白を設定することはできませんし、上記に従わない場合もあります。私はApp.xaml.cs

/// <summary> 
    /// Gets the margin to be set all around the dialog 
    /// </summary> 
    public Thickness MarginsAllAroundDialog 
    { 
     get 
     { 
     // returns default margin 
     return new Thickness(7); 
     } 
    } 

にいくつかのゲッターのプロパティを作るとして、ダイアログにマージンを設定することにより、マージンを設定することができる午前

<Window x:Class="XXX.Views.MainWindow" 
     x:Name="mainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:prism="http://www.codeplex.com/prism" 
     Title="MainWindow" 
     Margin="{Binding Path=MarginsAllAroundDialog, Source={x:Static Application.Current}}" 
     Height="350" 
     Width="525" 
     WindowState="Maximized"> 

は、これは正しい方法ですより単純な手段で同じことを達成することができます。

+0

「私はそれが尋ねると、スタイルを通じてマージンを設定することはできませんよ私はターゲットオブジェクトのために、そして、私が上記に従うことを望んでいない場合があるかもしれません "あなたがそれを上書きするのを止めるものは何もありません。コントロールに明示的に余白を指定すると、スタイルが上書きされます。 –

+0

ありがとうジョーはそれを知らなかった:-) – Mohit

答えて

2

あなたのアプローチは十分だと思いますが、XAMLで余白を宣言することを検討してください。

あなたのApp.xamlにリソースとしてマージンを定義することができます。

<Application> 
    <Application.Resources> 
     <Thickness x:Key="MarginsAllAroundDialog" Bottom="7" Left="7" Right="7" Top="7" /> 
    </Application.Resources> 
</Application> 

を、代わりに結合使用して、これらのリソースを参照:

<Window x:Class="XXX.Views.MainWindow" 
     Margin="{StaticResource MarginsAllAroundDialog}"> 
+0

これは私が探していたよりクリーンなアプローチです。 私は <= "7,7,7,7"/setterプロパティ= "マージン" バリュー>