2011-04-11 186 views
1

这必须相当简单,但我的搜索受到试图拉伸控件的人员的严重干扰(先前在Winforms中使用Anchor.Left | Anchor.Right)。将WPF控件绑定到右边

这是不相关的,我只是想控制权的权利。

什么我是这样的:

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

我能做到这一点使用的Horizo​​ntalAlignment,网格或其他的一些方式。但如果我调整控制权,它就会中断。

我想:

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

(那就是 - 在右锚..不要碰那个距离边缘移动左侧拿出来看)

相反,我得到这个:

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

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

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


好吧,我是在作弊,让我觉得太简单了。我真的是矩形列表(在这里由X表示):

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

这是一个StackPanel内一个ItemsControl,含(或多或少只)的矩形。期望保持不变:将整个东西固定在右侧,只有在调整大小时才损坏/向左滚动。

回答

1

的Horizo​​ntalAlignment =“右”肯定是要走的路,如果你重新大小的控制甚至工作。

试试这个:

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

这不是我想要的。据我所知,这是a)我已经做的和b)当我调整大小时行为不正确(是的,它是正确对齐的。直到内容不再适合屏幕,然后保留_left_一面,右侧被损坏)。 – 2011-04-11 08:34:47

+1

好的 - 在摆弄很多东西并创建更简单更简单的测试案例之后:您完全正确。看来,我的问题是将内容嵌入到ScrollViewer中。它现在通过'恢复'一切:ScrollViewer.FlowDirection RightToLeft和StackPanel内部使用隐式的Horizo​​ntalAlignment = Left。 – 2011-04-11 14:03:56

0

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

1

也许我做得太多了这里,但我知道这个工程:

<DockPanel> 
    <Canvas DockPanel.Dock="Right"> 
     <TextBlock Canvas.Right="0">FooBar</TextBlock> 
    </Canvas> 
    <Grid></Grid> 
    </DockPanel> 

没有画布,你说会做,即切断右侧。

您还必须设置Canvas.Right。因此画布获得了文本块的宽度,但在左侧被截断。

编辑:

这也适用,可能是简单的

<DockPanel> 
    <TextBlock DockPanel.Dock="Right" HorizontalAlignment="Right">FooBar</TextBlock>   
    <Grid></Grid> 
    </DockPanel> 
+0

好了,所以我是过于简单化。我没有一个我关心的Textblock,我有一个ItemsControl,使用一个填充了矩形的StackPanel。认为水平条形图,多个矩形。我试着将ItemsControl或StackPanel放入DockPanel,但行为似乎保持不变。 – 2011-04-11 08:37:09