VisualBrush を介して行われるサムネイル プレビューがあります。Preview は、他の要素 RichTextBox と共に含まれる ItemsControl のものです。
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 の後) にあります。ただし、他の要素 (パスなど) にも同じ違いがあり、プレビューでは正しく表示されます。
canvas.Remove(itemsControl) を実行すると RichTextBox が非表示になりますが、他のコントロールは保持されます。どんなアイデアでも大歓迎です!