将WPF控件向右移动

时间:2011-04-11 07:54:05

标签: c# wpf wpf-controls

这必须相当简单,但是我的搜索对于试图拉伸控件的人来说非常不安(使用之前在Winforms中使用Anchor.Left | Anchor.Right)。

那是无关紧要的,我只是想把一个控件固定在右边。

我拥有的是:

|--------|
|        |
|  Foobar|
|--------|

我可以使用Horizo​​ntalAlignment,网格或许多其他方式来做到这一点。但是如果我调整控件的大小就会中断。

我想:

|----|
|    |
|obar|
|----|

(即 - 在右侧锚定..不要触摸到边缘的那个距离。将左侧移出视野)

相反,我得到了这个:

|----|
|    |
|Foob|
|----|

(我内容的左侧不会移出视图)。

我确信这有一个简单的解决方案,但到目前为止我无法说服WPF它应该损坏/切断控件的左侧,无论如何。


好吧,我猜是因为作弊而且太简单了。我真正拥有的是一个矩形列表(这里用X表示):

|---------|
|     XXXX|
|---------|

这是一个ItemsPatrol,里面有StackPanel,包含(或多或少)矩形。期望保持不变:将整个事物固定在右侧,只有在我调整大小时才会损坏/向左滚动。

3 个答案:

答案 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)

Horizo​​ntalAlignment =“正确”绝对是可行的方法,如果您调整控件的大小,它甚至可以正常工作。

试试这个:

<TextBlock Text="FooBarrrrrrrrrrrrrrrrrrrrttttttttttttttt"
            HorizontalAlignment="Right" />

答案 2 :(得分:0)

尝试将控件粘贴在DockPanel中,并在控件上设置附加属性DockPanel.Dock =“Right”。