我有一个通过VisualBrush完成的缩略图预览。 Preview是一个ItemsControl,其中包含其他元素RichTextBox。从屏幕上的控件分离后,RichTextBox文本在VisualBrush中消失
var preview = new VisualBrush(itemsControl, ViewboxUnits = BrushMappingMode.Absolute,
Viewbox = Rect(controlSize),
Stretch = Stretch.Uniform);
当ItemsControl的是应用程序可视化树一切的部分预览和控制自己显示得很好,但是当我从应用程序可视化树(如canvas.Remove(ItemsControl中))的RichTextBox控制成为ItemsControl中删除在预览(VisualBrush)中不可见,而其他所有控件都照常显示。
public void SetActiveControl(ItemsControl newItemsControl) {
canvas.Children.Remove(currentItemsControl);
canvas.Children.Add(newItemsControl);
currentItemsControl = newItemsControl;
}
我比较了RichTextBox从应用程序可视化树中分离出来之前和之后的属性。区别在于属性IsLoaded(在TRUE之前,在FALSE之后)和IsVisible(在TRUE之前,在FALSE之后)。但其他元素(例如路径)具有相同的差异,并且仍能正确显示在预览中。
我无法掌握如何做canvas.Remove(itemsControl)隐藏RichTextBox,但保持其他控件!任何想法将不胜感激!
Freeze无法在VisualBrush上正常工作 – Alfa07 2012-04-06 08:11:34