这必须相当简单,但是我的搜索对于试图拉伸控件的人来说非常不安(使用之前在Winforms中使用Anchor.Left | Anchor.Right)。
那是无关紧要的,我只是想把一个控件固定在右边。
我拥有的是:
|--------|
| |
| Foobar|
|--------|
我可以使用HorizontalAlignment,网格或许多其他方式来做到这一点。但是如果我调整控件的大小就会中断。
我想:
|----|
| |
|obar|
|----|
(即 - 在右侧锚定..不要触摸到边缘的那个距离。将左侧移出视野)
相反,我得到了这个:
|----|
| |
|Foob|
|----|
(我内容的左侧不会移出视图)。
我确信这有一个简单的解决方案,但到目前为止我无法说服WPF它应该损坏/切断控件的左侧,无论如何。
好吧,我猜是因为作弊而且太简单了。我真正拥有的是一个矩形列表(这里用X表示):
|---------|
| XXXX|
|---------|
这是一个ItemsPatrol,里面有StackPanel,包含(或多或少)矩形。期望保持不变:将整个事物固定在右侧,只有在我调整大小时才会损坏/向左滚动。
答案 0 :(得分:1)
也许我在这里做得太多了,但我知道这有效:
<DockPanel>
<Canvas DockPanel.Dock="Right">
<TextBlock Canvas.Right="0">FooBar</TextBlock>
</Canvas>
<Grid></Grid>
</DockPanel>
如果没有画布,它会像你说的那样做,即切断右侧。
您还必须设置Canvas.Right。因此画布获得了Textblock的宽度,但在左侧被截断。
编辑:
这也有效,可能更简单
<DockPanel>
<TextBlock DockPanel.Dock="Right" HorizontalAlignment="Right">FooBar</TextBlock>
<Grid></Grid>
</DockPanel>
答案 1 :(得分:1)
HorizontalAlignment =“正确”绝对是可行的方法,如果您调整控件的大小,它甚至可以正常工作。
试试这个:
<TextBlock Text="FooBarrrrrrrrrrrrrrrrrrrrttttttttttttttt"
HorizontalAlignment="Right" />
答案 2 :(得分:0)
尝试将控件粘贴在DockPanel中,并在控件上设置附加属性DockPanel.Dock =“Right”。