C# WPF - ScrollViewer + TextBlock 问题

标签 c# .net wpf scrollviewer textblock

我在 ScrollViewer 中有一个 TextBlock,它与其窗口对齐。我需要 TextBlock 表现如下:

  • 随窗口调整大小,无滚动条
  • TextBlock 调整到一定宽度以下时,需要保持 MinWidth 并且应该出现滚动条
  • TextWrappingTextTrimming 应该可以正常工作

如何获得此功能?

我尝试了几种方法,包括绑定(bind)到 ActualWidthActualHeight,但无法让它工作。

这并没有那么难,我错过了什么?

这是一个放入 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>

最佳答案

这个有效:

<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>

关于C# WPF - ScrollViewer + TextBlock 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1981137/

相关文章:

c# - 如何在 System.Windows.Forms.WebBrowser 中判断加载的页面是错误页面还是有效页面?

C# 获取 CPU 缓存未命中性能计数器

c# - 在可拉伸(stretch)的 WPF 窗口中将两个控件布局在一条线上

wpf - {RelativeSource PreviousData} 与 DataGrid 一起使用时始终为 NULL

c# - 在 C# 中为 Dapper 创建动态类型

c# - WCF 服务不是多线程的

c# - Xamarin.Forms 字体已过时

c# - LINQ 中不区分大小写的 LIKE 条件(使用正则表达式)

javascript - Office Apps,如何使用 ajax 将 doc 文件的副本发送到 C# Controller

Wpf:Storyboard.TargetName 有效,但 Setter TargetName 无效