2011-09-04 95 views

回答

6

很抱歉,該功能沒有此屬性。

,我所知道的唯一的解決方法是使用現有的控制或將另一個隱藏控制在同一個空間,然後綁定的WidthTextBlock/TextBox到控制ActualWidth

下面是一個例子,當TextBlock不會影響ColumnDefinitionWidth但如果ColumnDefinition被調整的另一個原因

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
    </Grid.ColumnDefinitions> 
    <TextBlock Grid.Column="1" 
       TextWrapping="Wrap" 
       Text="{Binding ...}" 
       Width="{Binding ElementName=sizingControl, Path=ActualWidth}"/> 
    <Rectangle Name="sizingControl" Grid.Column="1" Visibility="Hidden" /> 
</Grid> 
+0

謝謝,這個伎倆。有趣的事情btw。只有一個提示:使用ActualWidth殺死了我的CPU。使用寬度固定它。 –

+1

使用此「解決方法」通常需要一些測試。有時爲「TextBlock」設置邊距爲1,有時在綁定中使用「FallbackValue」等等,這一切都取決於您的場景。否則,它可以像你注意到的那樣進入一個無限大小的循環:) sizingControl被調整大小,以便'TextBlock'更新其'Width',然後調整sizingControl的大小等等。但我確實相信'ActualWidth'應該用於這個工作。 Apprently在您的場景中使用'Width',這非常棒:) –

-1

爲此,您需要在父級上設置寬度,或者在包含文本塊的父級中放置另一個網格或某個容器。然後設置一個寬度。文本塊不會包裝在靈活的父級上。

或者更好的是,只需在文本塊上設置一個寬度即可。

+0

我知道這種做法會得到更廣泛的,但也有一些情況是使它不可能。是不是隻有一點財產或什麼..? –