【发布时间】:2018-01-13 16:52:24
【问题描述】:
我有一个画布,里面有一个矩形和一个圆圈:
<Canvas x:Name="CanvasMain" Width="595" Height="842" Background="White" HorizontalAlignment="Center" >
<Rectangle Fill="Tomato" Height="335" Canvas.Left="40" Stroke="Black" Canvas.Top="60" Width="265"/>
<Ellipse Fill="Tomato" Height="175" Canvas.Left="370" Stroke="Black" Canvas.Top="465" Width="200"/>
</Canvas>
我想以编程方式设置画布的填充。我应该设置 Canvas 内所有元素的边距以实现此目的还是有任何替代方法
【问题讨论】:
-
在
Canvas对象的上下文中填充甚至意味着什么?Canvas的全部意义在于提供一个使用显式 X 和 Y 值布置子对象的位置,而不是与Canvas本身以外的任何东西相关。你想达到什么效果,Canvas.Margin属性没有给你? -
@PeterDuniho:
Canvas.Margin减小了画布的大小。这可能是不希望的(例如,如果画布有背景)。 -
@JanDotNet:我很清楚
Canvas.Margin做了什么。但是如果Canvas有一个填充属性,它也会减少Canvas中的可用布局大小。因此,如果它可能是不可取的(如您所声称的),则 OP 不会要求设置填充的方法。 -
我正在尝试在画布边框和内部元素之间创建间隙。一种方法是增加内部所有元素的顶部、底部、左侧和右侧的值,并相应地增加画布的高度和宽度。但在这种情况下,我必须运行一个循环来查找每个元素并在每次更改填充时重新定位它们@Peter Duniho
-
“我正在尝试在画布边框和内部元素之间创建间隙” -- 画布没有边框。那么在那个不存在的地方创造一个缺口是什么意思呢?再说一次,简单地设置
Margin属性 not 以什么方式做你想要的?请确保您edit您的问题得到改进和澄清。