模板内部含有ScrollViewer控件强制刷新界面不起作用解决方案

有时候会遇到模板内部含有ScrollViewer控件的控件强制刷新界面不起作用(包括使用InvalidateMeasure和InvalidateVisual都不行),以前是使用width+1解决,现在发现一个可能的解决方案。使用流文档容器FlowDocumentScrollViewer为例:
1、首先取得ScrollViewer控件。
ScrollViewer scroll = (ScrollViewer)viewer.Template.FindName(“PART_ContentHost”, viewer);
2、强制刷新ScrollViewer里面的内容重新布局。
if (scroll != null)
{
(scroll.Content as UIElement).InvalidateMeasure();
}
原理还不清楚(为什么强制ScrollViewer重新布局不行而其内容强制布局就可以),暂时记录于此。

猜你喜欢

转载自blog.csdn.net/yulongguiziyao/article/details/53930292
今日推荐