WPF: PART_ContentHost not scrolling
本文关键字:not scrolling ContentHost PART WPF | 更新日期: 2023-09-27 18:25:02
我正在尝试在我的应用程序中创建一个日志区域,客户要求能够从该区域剪切/粘贴日志消息。
我最初使用以下内容来设置滚动日志区域,但这不允许用户选择&复制文本:
<ScrollViewer DataContext="{StaticResource Log}"
Content="{Binding Appender.Notification}"
Height="150">
<ScrollViewer.Resources>
<Style TargetType="{x:Type ScrollViewer}">
<Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="VerticalScrollBarVisibility" Value="Auto" />
</Style>
</ScrollViewer.Resources>
</ScrollViewer>
我找到了这个解决方案来创建一个只读的TextBox,其中包含可选择的文本:
<TextBox Name="LoggingTextBox"
Height="250"
Width="950"
DataContext="{StaticResource Log}"
Text="{Binding Appender.Notification}"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border x:Name="PART_ContentHost" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TextBox.Style>
</TextBox>
这允许在日志区域内选择文本,但滚动不起作用。我添加了*ScrollBarVisibility的属性(不在原始解决方案中)。
如何使用此TextBox样式使滚动工作?
修复非常简单:只需将Border
更改为ScrollViewer
,就可以获得TextBox
的标准滚动行为。