微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为动态创建的WPF控件在XAML中设置边距

如何解决为动态创建的WPF控件在XAML中设置边距

| 我有一个WPF,可以在加载表单时动态创建按钮,并将它们添加到XAML中已声明的StackPanel中。我想在StackPanel.Resources内部的XAML中完全定义这些按钮的样式。到目前为止,我可以为Style属性做到这一点,但是我遇到的麻烦是实现边距的最佳方法。我知道“边距”是“厚度”,实际上不能以样式应用,但必须定义为静态资源并直接应用于“边距”属性。有没有一种方法可以在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>
谢谢, 麦克风     

解决方法

        您声明“我知道边界是厚度,因此无法实际应用样式”,这是不正确的。可以在XAML中应用边距,the1ѭ类型具有类型转换器,该类型转换器可以将字符串转换为
Thickness
,从而允许您按以下方式对其进行定义:
<setter Property=\"Margin\" Value=\"5,5,5\"/>
    ,        
<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>
    ,        
Padding
也是
Thickness
,看来您可以加上一点;)。 因此,只需按照与
Padding
相同的方式进行即可。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。