【问题标题】:margin in WPF UsercontrolWPF用户控件中的边距
【发布时间】:2014-07-31 16:21:29
【问题描述】:
<Style x:Key="MyControl" TargetType="UserControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Grid>
                    <Path Style="{StaticResource PathA}"/>
                    <Path Margin="8" Style="{StaticResource PathB}" />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

在这种usercontrol 样式中,我将path 放在另一个path 后面,它的margin 为8。

如果我用足够大的height/width 创建一个usercontrol,一切都会好起来的。

问题是,如果大小接近或小于 8,PathB 会缩小到看不见的地方。

我知道是margin 推动了PathBmargin 不是 usercontrol 中的相对值吗?如果我想在 PathAPathB 之间保留一点空间,即使在调整大小时,我该如何处理?

在第二张图片中,橙色馅饼不见了,因为它被边缘缩小了。

【问题讨论】:

  • 你能发布一些屏幕或你看到的和你期望的吗?
  • @pushpraj 我更新了描述。

标签: wpf user-controls styles margin


【解决方案1】:

您也许可以定义网格或路径甚至用户控件的最小宽度和高度。

<Style x:Key="MyControl" TargetType="UserControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Grid MinWidth="12" MinHeight="12">
                    <Path Style="{StaticResource PathA}"/>
                    <Path Margin="8" Style="{StaticResource PathB}" />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

或者在这里使用 ViewBox

<Style x:Key="MyControl" TargetType="UserControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Viewbox>
                    <Grid>
                        <Path Style="{StaticResource PathA}"/>
                        <Path Margin="8" Style="{StaticResource PathB}" />
                    </Grid>
                </Viewbox>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

ViewBox 将在调整内容大小时保持比例不变

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-11
    • 2011-07-06
    • 2011-12-04
    • 1970-01-01
    • 2021-02-04
    • 2014-10-07
    • 2013-06-22
    • 2015-10-24
    相关资源
    最近更新 更多