【发布时间】:2017-09-12 11:47:12
【问题描述】:
我有一个需要包含绘制背景的StackPanel。具体来说,我的StackPanel 需要具有增长能力,并且矩形必须与StackPanel 一起增长,但必须在固定位置保持伪锚定到每一侧。
我尝试使用 Canvas.Left、Canvas.Right、Canvas.Top 和 Canvas.Bottom 附加属性,但到目前为止它们还没有工作。此外,当在 Canvas 对象中绘图时,这似乎确实有效,只是当它们嵌入到作为背景的 VisualBrush 中时无效。如何在我的StackPanel 中绘制这个可调整大小的矩形背景?
以下是我当前代码的状态。我尝试了各种方法,但似乎都没有奏效。
我的代码:
<StackPanel DockPanel.Dock="Right" Orientation="Vertical" VerticalAlignment="Center">
<StackPanel.Background>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<Canvas Background="Magenta" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
Rectangle Fill="#FFDDECF7" Canvas.Left="20" Canvas.Top="20" Canvas.Bottom="20" Canvas.Right="0"/>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
</StackPanel.Background>
...
</StackPanel>
这目前不渲染任何东西。我将画布背景设置为洋红色,这样我就可以看到它是否正在绘图,而我什至没有看到它。其他尝试绘制了画布,但是,无论附加的画布属性设置如何,蓝色矩形总是被拉伸以填充窗口。
示例:
下面的图片是我想要的示例。同样,我使用难看的洋红色来显示内部蓝色矩形的偏移量。随着 StackPanel 的增长或缩小,矩形需要贴在顶部、左侧、右侧和底部。
【问题讨论】: