2012-04-05 3 views
2

У меня есть предварительный просмотр миниатюр, который выполняется через VisualBrush. Предварительный просмотр элемента ItemsControl, который содержит другие элементы RichTextBox.Текст RichTextBox исчезает в VisualBrush после отсоединения от контроля на экране

var preview = new VisualBrush(itemsControl, ViewboxUnits = BrushMappingMode.Absolute, 
        Viewbox = Rect(controlSize), 
        Stretch = Stretch.Uniform); 

Когда ItemsControl является частью приложения визуального дерева все для предварительного просмотра и управления сами отображения просто отлично, но когда я удалить ItemsControl из визуального дерева приложений (например, canvas.Remove (ItemsControl)) управления RichTextBox стать невидимый в предварительном просмотре (VisualBrush), в то время как все остальные элементы управления отображаются как обычно.

public void SetActiveControl(ItemsControl newItemsControl) { 
    canvas.Children.Remove(currentItemsControl); 
    canvas.Children.Add(newItemsControl); 
    currentItemsControl = newItemsControl; 
} 

Я сравнивал свойства RichTextBox до и после его отсоединения от визуального дерева приложения. Разница заключается в свойствах IsLoaded (до TRUE, после FALSE) и IsVisible (до TRUE, после FALSE). Но другие элементы (например, Path) имеют одинаковые отличия и по-прежнему отображаются в предварительном просмотре правильно.

Я не могу понять, как делать canvas.Remove (itemsControl) скрывает RichTextBox, но сохраняет другие элементы управления! Благодарим за любую идею!

ответ

2

Визуальная кисть не может быть заморожена. Таким образом, вы можете создать ImageBrush из VisualBrush, прежде чем отсоединить свой контроль от визуального дерева. Вот пример, как это сделать: “Freeze” that VisualBrush.

+0

Замораживание не работает на VisualBrush – Alfa07

 Смежные вопросы

  • Нет связанных вопросов^_^