我試圖創建一個網格,處理不同大小的屏幕。我的代碼目前看起來是這樣的:MaxWidth的'自動'?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" ... />
<TextBlock Grid.Column="1" ... />
</Grid>
,因爲我結束了在第一列的最後一個巨大的空白,當我在全屏我這不正常,我想在每一個文本列相鄰。但是,當我縮小/調整屏幕大小時,它會正確縮小第一列。
我也使用這樣的代碼嘗試:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" ... />
<TextBlock Grid.Column="1" ... />
</Grid>
這個代碼看上去很完美,當應用程序是全屏,但是當我縮小/調整屏幕的第一列將不縮小以適合。它使我的網格保持相同的大小,這會將我的文本從較小的屏幕推出。
如何限制「自動」大小的寬度,並仍然調整其大小,如'*'?
更接近,但是你在哪裏得到值MinWindowWidth =「600」?由於每個TextBlock的長度可能會有所不同,我永遠不會知道*和Auto之間的確切翻轉點。當它被設置爲Auto時,我不需要'600'作爲第一列的寬度嗎?我不能只將該值設置爲第一列的MaxWidth並獲得相同的結果嗎? –
@TS,'MinWindowWidth'是兩個'TextBlock'的摘要'ActualWidth'。如果實際寬度是動態的,您可以在後面計算代碼並將其設置爲觸發器。我更新了您可以參考的答覆中的代碼。順便說一下,如果我的回覆對您有幫助,請您注意接受。 –
我已經得到了我想要的......儘管我最終放棄了VisualStateManager。基本上我把你的代碼放在後面,而不是用它來設置'adptivetrigger.MinWindowWidth',用它來設置'col1.MaxWidth'。它仍然需要調整才能使它與它所在的ItemsControl一起工作(可能會使MaxWidth成爲一個綁定),但這個概念是可靠的。謝謝! –