0

对于 XAML 中的 TextBlock,您可以在 DataTemplate 中执行以下操作:

<TextBlock Text="myTextBlock Text" VerticalAlignment="Center" Margin="0,0,5,0" 
ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible"/>

但是当我尝试设置 ScrollViewer.Horizo​​nalScrollBarVisibility 时,它似乎没有做任何事情。

DataTemplate textBlockTemplate = new DataTemplate();
FrameworkElementFactory textBlockElement = new FrameworkElementFactory(typeof(TextBlock));
Binding c1Binding = new Binding("myBindingValue") { Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged };
textBlockElement.SetBinding(TextBlock.TextProperty, c1Binding);
textBlockElement.SetValue(TextBlock.TextWrappingProperty, TextWrapping.Wrap);
textBlockElement.SetValue(TextBlock.HeightProperty, System.Convert.ToDouble(23));

textBlockElement.SetValue(ScrollViewer.CanContentScrollProperty, true);
textBlockElement.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Visible);
textBlockTemplate.VisualTree = textBlockElement;
templateColumn.CellTemplate = textBlockTemplate;
myDataGrid.Columns.Add(templateColumn);

我正在尝试制作一个 DataGrid 列,它有一个显示一行文本的 TextBlock,但允许您向上/向下滚动以查看文本块的其余部分。

4

1 回答 1

0

TextBlock没有ScrollViewer包含在其中设置滚动行为的内容。你需要把它包装在一个ScrollViewer你可以设置任何你想要的东西的地方。将此与 a 进行对比ListBox,后者确实包含 a ScrollViewerControlTemplate因此可以利用附加的属性。

于 2013-05-09T15:34:47.283 回答