Window.SizeToContent问题

时间:2015-10-02 16:40:30

标签: c# .net wpf xaml

我的应用中有一个Window,其中包含TextBox。我的Window' SizeToContent设置为WidthAndHeight。我使用Dispatcher.Invoke()从后台线程显示此窗口。问题是窗口在第一次出现时不会调整其内容的大小。只要我更改TextBox的文字,Window就会缩小到正确的尺寸。

我也试过在Dispatcher.Invoke()中调用以下内容:

  1. Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() => { }));
  2. WindowObject.InvalidateVisual();
  3. WindowObject.UpdateLayout();
  4. 但它不会影响初始窗口大小。我需要做什么?

    更新:如果我以编程方式为Window TextBox属性分配值,我还确认Text缩小到正确的大小。在WindowObject.Show()中调用Dispatcher后添加以下3行 - 调用函数将其设置为正确的大小:

    var Old = WindowObject.TXT.Text;
    WindowObject.TXT.SetCurrentValue(TextBox.TextProperty, "");
    WindowObjectTXT.SetCurrentValue(TextBox.TextProperty, Old);
    

1 个答案:

答案 0 :(得分:0)

我刚刚对此进行了测试,并使用Window的 Show ShowDialog 方法来显示带有要调整的文本框的窗口及其调整后的窗口大小,我可以用正确的大小显示这个窗口。

我添加了一个带有以下点击处理程序的按钮来显示窗口:

typedef

Simple test