2011-04-11 67 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