我的应用中有一个Window
,其中包含TextBox
。我的Window
' SizeToContent
设置为WidthAndHeight
。我使用Dispatcher.Invoke()
从后台线程显示此窗口。问题是窗口在第一次出现时不会调整其内容的大小。只要我更改TextBox
的文字,Window
就会缩小到正确的尺寸。
我也试过在Dispatcher.Invoke()
中调用以下内容:
Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() => { }));
WindowObject.InvalidateVisual();
WindowObject.UpdateLayout();
但它不会影响初始窗口大小。我需要做什么?
更新:如果我以编程方式为Window
TextBox
属性分配值,我还确认Text
缩小到正确的大小。在WindowObject.Show()
中调用Dispatcher
后添加以下3行 - 调用函数将其设置为正确的大小:
var Old = WindowObject.TXT.Text;
WindowObject.TXT.SetCurrentValue(TextBox.TextProperty, "");
WindowObjectTXT.SetCurrentValue(TextBox.TextProperty, Old);