すべてのウィンドウに配置したすべてのコントロールにデフォルトのマージン3を設定し、実際に少数のアイテムでこの値をオーバーライドできるようにします。
私はスタイルを行うようないくつかのアプローチを見てきましたが、それから私はすべてをスタイルする必要があります、私はすべてのコントロールに対して一緒にできるよりも何かを好むでしょう。 MarginSetterのような他のものを見たことがありますが、サブパネルを通過しないようです。余白は、ウィンドウに配置したコントロールにのみ表示し、境界線やその他のビジュアルツリーとは関係ありません。
私にはかなり基本的なものに見えます。何か案は?
前もって感謝します。
私が見つけることができる唯一の解決策は、ウィンドウで使用している各コントロールにスタイルを適用することです(それはあなたが望むものではないことを私は知っています)。いくつかの異なるコントロールタイプのみを使用している場合、次のようなことを行うのはそれほど面倒ではありません。
<Window x:Class="WpfApplication7.MainWindow"
xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<!-- One style for each *type* of control on the window -->
<Style TargetType="TextBox">
<Setter Property="Margin" Value="10"/>
</Style>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="10"/>
</Style>
</Window.Resources>
<StackPanel>
<TextBox Text="TextBox"/>
<TextBlock Text="TextBlock"/>
</StackPanel>
</Window>
幸運を...
リソースで定義されている「厚さ」を参照することで、すべてのマージンプロパティをリンクできます。私はプロジェクトでこれをしました...
<!-- somwhere in a resource-->
<Thickness x:Key="CommonMargin" Left="0" Right="14" Top="6" Bottom="0" />
<!-- Inside of a Style -->
<Style TargetType="{x:Type Control}" x:Key="MyStyle">
<Setter Property="Margin" Value="{StaticResource CommonMargin}" />
</Style>
<!-- Then call the style in a control -->
<Button Style="{StaticResource MyStyle}" />
<!-- Or directly on a Control -->
<Button Margin="{StaticResource CommonMargin}" />
私にとっての鍵は、マージンが「厚さ」によって定義されていることを理解することでした。それが十分に明確であるかどうか、または完全に機能するXAMLの例に入れる必要があるかどうかを教えてください。
ボタンスタイルでマージンを適用できます。また、StackPanelでこのスタイルのボタンを使用すると、wpfは必要な間隔を適用します。たとえば、resourcedictionaryなどで定義します。
<Style x:Key="myButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Margin" Value="10"/>
....
</Style>
次に、StackPanel xaml定義で:
<StackPanel>
<Border BorderThickness="0"/>
<Button x:Name="VertBut1" Style="{StaticResource myButtonStyle}" Content="Button1"/>
<Button x:Name="VertBut2" Style="{StaticResource myButtonStyle}" Content="Button2"/>
<Button x:Name="VertBut3" Style="{StaticResource myButtonStyle}" Content="Button3"/>
</StackPanel>
ゲオルギよろしく