首页 > 解决方案 > 如何在类变量中获取我的 WPF 窗口的实际大小?

问题描述

我想在我的班级中获得一个变量 double,我想要我的窗口的实际宽度,甚至调整大小。

我不想在 Window 事件 SizeChanged 中声明 var,因为它会将 var actualWidth 的范围限制为事件 SizeChanged。

我的问题是变量的范围。我想在我想要的地方使用它,这就是为什么我想在课堂上声明它。

   namespace test
   {
     public partial class MainWindow : Window
   {
       double actualWidth = ?;  //i don't know what to do 

     public MainWindow()
          {
              InitializeComponent();
              .
              . //use actualWidth here if i want
              .
          }

     private void xx()
          {

           //use it here...

          }

标签: c#wpfxaml

解决方案


您已经有一个类级别的字段,只需在事件处理程序中使用它而不是局部变量

    //field for width
    double actualWidth;

    public MainWindow()
    {
        //attach an eventhandler
        this.SizeChanged += MainWindow_SizeChanged;

        InitializeComponent();
      }

    private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        //set the fields value
        actualWidth = e.NewSize.Width;
    }

    private void xx()
    {
        //use the fields value for whatever...
        MessageBox.Show(actualWidth.ToString());

    }

或者只使用现有的属性 `ActualWidth',不需要额外的字段或事件处理程序

    private void xx()
    {
        MessageBox.Show(ActualWidth.ToString());
    }

推荐阅读