2010-03-08 4 views
2

WPF включает высоту строки заголовка в общей высоте окна, а не только высоту области содержимого клиента.Как получить высоту строки заголовка окна инструмента в WPF?

  • Есть ли способ отключить это поведение?
  • Если нет, то как я могу получить высоту строки заголовка окна инструмента?

Я знаю свойство SystemParameters.CaptionHeight и свойство SystemParameters.WindowCaptionHeight, но оба они возвращают высоту регулярной строки заголовка окна. Это не правильное значение для окна инструмента, потому что строка заголовка для этого типа окна меньше. Мне нужно что-то вроде SystemParameters.ToolWindowCaptionHeight

Спасибо.

ответ

1

Вы можете вернуться к System.Windows.Forms.SystemInformation.ToolWindowCaptionHeight. Хотя это и есть пространство имен WinForms, это вряд ли является классом WinForms.

+1

Спасибо Ларс, работает отлично. Я бы предпочел не добавлять ссылку на Windows Forms в мой проект, но это будет делать до тех пор, пока не появится собственное WPF-решение. – user275587

4

Размера клиентской области является фактическим размером корневого элемента окна:

public double ClientWidth 
{ 
    get { return ((FrameworkElement)this.Content).ActualWidth; } 
} 

public double ClientHeight 
{ 
    get { return ((FrameworkElement)this.Content).ActualHeight; } 
} 
+0

Это свойство бесполезно в моем контексте, потому что оно только для чтения. Если есть способ установить размер клиентской области, я смогу добиться того, что я пытаюсь сделать. – user275587

+0

Мне также нужно выполнить всю работу до того, как будет показано окно, а ActualWidth/ActualHeight не будут установлены в это время. – user275587

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