0

フォームが読み込まれたときにボタンを動的に作成し、XAMLで宣言されたStackPanelにボタンを追加するWPFがあります。StackPanel.Resources内のXAMLで、これらのボタンのスタイルを完全に定義したいと思います。これまでのところ、Styleプロパティに対してこれをうまく行うことができますが、私が理解するのに苦労しているのは、マージンを行うための最良の方法です。Marginは厚みであり、実際にはスタイルに適用できないことは知っていますが、静的リソースとして定義し、Marginプロパティに直接適用する必要があります。コードビハインドに頼らずにXAMLでこれを行う方法はありますか?

StackPanelのXAMLは次のとおりです。

        <StackPanel
            x:Name="_dialogButtons"
            Orientation="Horizontal"
            HorizontalAlignment="Right"
            DockPanel.Dock="Right">

            <StackPanel.Resources>
                <Style
                    TargetType="{x:Type Button}">
                    <Setter
                        Property="MinWidth"
                        Value="75" />
                    <Setter
                        Property="Padding"
                        Value="3" />
                </Style>                    
            </StackPanel.Resources>

        </StackPanel>

ありがとう、

マイク

4

3 に答える 3

4

「Margin は Thickness であり、実際にはスタイルに適用できないことはわかっています」と述べていますが、これは正しくありません。マージンは XAML で適用できます。Thickness型には、文字列を に変換できる型コンバーターがあり、次のThicknessように定義できます。

<setter Property="Margin" Value="5,5,5,5"/>
于 2011-05-31T15:38:19.510 に答える
4
<StackPanel.Resources>
    <Style
        TargetType="{x:Type Button}">
        <Setter
            Property="MinWidth"
            Value="75" />
        <Setter
            Property="Padding"
            Value="3" />
        <Setter
            Property="Margin"
            Value="3" />
    </Style>                    
</StackPanel.Resources>
于 2011-05-31T15:38:34.033 に答える
2

PaddingThickness同様であり、それを追加しても問題ないようです;)。

と同じようにしてPaddingください。

于 2011-05-31T15:36:50.583 に答える