代码之家  ›  专栏  ›  技术社区  ›  jonathanpeppers

C wpf-滚动查看器+文本块故障

  •  18
  • jonathanpeppers  · 技术社区  · 15 年前

    我有一个 TextBlock ScrollViewer 与窗口的拉伸对齐。我需要 控件 行为如下:

    • 使用窗口调整大小,无滚动条
    • 当调整到一定宽度以下时, 控件 需要保持 MinWidth 滚动条应该出现
    • TextWrapping TextTrimming 应该适当地工作

    如何获得此功能?

    我尝试过几种方法,包括绑定到 ActualWidth 和; ActualHeight 但不能让它工作。

    这不难,我错过了什么?

    下面是要放入xamlpad的代码示例(尚未设置minwidth):

    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                <TextBlock TextWrapping="Wrap" Text="Some really long text that should probably wordwrap when you resize the window." />
        </ScrollViewer>
    </Window>
    
    3 回复  |  直到 8 年前
        1
  •  24
  •   jonathanpeppers    15 年前

    这项工作:

    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Name="Scroller">
                <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="100" Width="{Binding ElementName=Scroller, Path=ViewportWidth}"
                TextWrapping="Wrap" Text="Some really long text that should probably wordwrap when you resize the window." />
        </ScrollViewer>
    </Window>
    
        2
  •  2
  •   Aviad P.    15 年前

    如果没有更多的细节,我能做的最好的就是提供标准的方法。基本上,将您的元素(最小大小)宿主在滚动查看器中;当滚动查看器的大小足够小,以至于元素不能完全容纳在其中时,它将自动显示滚动条。例子:

    <ScrollViewer>
        <Button MinWidth="100" MinHeight="50"/>
    </ScrollViewer>
    
        3
  •  0
  •   Community CDub    8 年前

    如果布局更复杂,并且无法绑定到 ScrollViewer 然后 IgnoreWidthControl 在答案中 https://stackoverflow.com/a/41281041/254109 可能会有帮助。

    推荐文章