【发布时间】:2014-07-02 07:30:04
【问题描述】:
我试图在画布宽度的圆角内绘制一个矩形,当我给这个硬编码的画布与它显示完美的大小相同时。
但是,当我使用这些线来参考父级的宽度和高度时:
Height="{Binding ElementName=MyDesigner, Path=ActualHeight}"
Width="{Binding ElementName=MyDesigner, Path=ActualWidth}"
右下角会超出画布,我附上了行为图。
谁能给我提示一下这里出了什么问题?
编辑
画布 xaml 是:
<s:DesignerCanvas Focusable="true" x:Name="MyDesigner"
Background="{StaticResource WindowBackgroundBrush}"
FocusVisualStyle="{x:Null}"
ContextMenu="{StaticResource DesignerCanvasContextMenu}"
Width="300" Height="300">
<Rectangle
Height="{Binding ElementName=MyDesigner, Path=ActualHeight}"
Width="{Binding ElementName=MyDesigner, Path=ActualWidth}"
Fill="Transparent"
Stroke="Black" StrokeThickness="4"
RadiusX="20" RadiusY="20"
Canvas.Left="0"
Canvas.Top="0"/>
<Thumb Name="myThumb" Canvas.Bottom="0" Canvas.Right="0" Background="Blue"
Width="10" Height="10" DragDelta="onDragDelta"
DragStarted="onDragStarted" DragCompleted="onDragCompleted"/>
</s:DesignerCanvas>
不同之处在于,当我将 retangle 的宽度和高度更改为 300 时,它非常适合。
DesignerCanvas,是一个继承了canvas的类,几乎没有额外的功能。
【问题讨论】:
-
您能否展示其余的 XAML 代码,或者更好地展示 2 个变体?
-
你为什么不用
Border?至于你的问题 - 我的猜测是:你的矩形有某种偏移(由于边距或填充或左上角位置)。您应该发布您的 xaml。 -
我已经编辑了我的帖子并添加了 xaml,我不使用边框,因为稍后我想将装饰器添加到 retangle 并为将要位于 retangle 内部的元素绘制线条。