簡體   English   中英

使用 WrapWithOverflow 調整 WPF TextBlock 的大小

[英]Resize WPF TextBlock with WrapWithOverflow

我在滾動查看器中包含的窗口上有一個文本塊。 對於 textlblock,我已將文本換行設置為“WrapWithOverflow”。 此外,我將 textblock width 屬性綁定到滾動查看器的實際寬度。

我想要的行為是,我可以調整窗口大小並且文本塊應該包裝內容。 當其他控件(例如示例 xaml 中的按鈕被剪切)時,窗口應該只顯示滾動條

Xml:

<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
    <DockPanel Margin="5">
        <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
            <Button Content="First Button" Margin="0,0,10,0"/>
            <Button Content="Second Button"/>
        </StackPanel>
        <DockPanel>
            <TextBlock VerticalAlignment="Center" IsHitTestVisible="False" TextAlignment="Center" TextWrapping="WrapWithOverflow" 
                   Width="{Binding RelativeSource={RelativeSource AncestorType=ScrollViewer}, Path=ActualWidth}" MaxWidth="260">
            Just a small line<LineBreak />
            This is the long line which will wrap during resize</TextBlock>
        </DockPanel>
    </DockPanel>
</ScrollViewer>

但是我什至在按鈕被切斷之前看到了滾動條。 我想這是因為在我的情況下需要停靠面板中的邊距。

在此處輸入圖片說明

我想這是因為停靠面板中的邊距

正確的。

...這在我的情況下是必需的。

為什么? 您應該將Margin移動到StackPanel

<DockPanel>
    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="5">
    ...

...或按鈕:

<DockPanel>
    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
        <Button Content="First Button" Margin="5,5,5,5"/>
        <Button Content="Second Button" Margin="5,5,0,5"/>
    </StackPanel>
    ...

這是必要的,因為邊距包含在您綁定到的ActualWidth中。

暫無
暫無

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

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