簡體   English   中英

如何使元素自動擴展以填充空間而不接管?

[英]How to make an element auto-expand to fill space without taking over?

我正在 XAML 和 WPF 中創建自定義日歷。 日歷由七個<Grid>列組成,可以隨窗口自動擴展(例如width="1*" )。

這是現在發生的事情:

在此處輸入圖像描述

一個非常寬的元素“接管”了列並使其他列更小,這不是我想要的。

我希望它看起來像這樣:

在此處輸入圖像描述

在此示例中,列會自動擴展以填充可用寬度(窗口大小),但元素不能使一列變大。 我知道實現這一點的唯一方法是設置 width 屬性(但它不會自動擴展)。

這是示例代碼。 它會產生像第一張圖片一樣的輸出:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>
    <TextBlock Text="Hello world this is a sample very long text!" Grid.Column="1"/>
    <TextBlock Text="Hello world !" Grid.Column="2"/>
</Grid>

我怎樣才能達到這個期望的輸出?

編輯:我在我的網格周圍使用了一個ScrollViewer (在有很多作業的情況下垂直滾動)。 屬性HorizontalScrollBarVisibility="Hidden"實際上導致了這種奇怪的行為。

我不確定它是否可以解決您的問題,但是如果溢出,您可以嘗試將文本換行,如下所示:

<TextBlock Text="Some long text" TextWrapping="Wrap">

讓我知道這是否有幫助,如果沒有,我可以進一步研究!

我沒有看到這種行為。 當我嘗試您的代碼片段時,文本不會“接管”其他列。 它被剪掉了(見下文)

不帶 TextWrapping 的示例

似乎您可能希望將 TextBlock 的 TextWrapping 屬性設置為“Wrap”。

<TextBlock Text="Hello world this is a sample very long text!" Grid.Column="1" TextWrapping="Wrap"/>

帶有 TextWrapping="Wrap" 的示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM