获取与恢复窗口位置

我们每次打开软件,都想它一开始就是上次关闭时的位置,就可以按下面代码操作。

        1、ActualHeight、ActualWidth(获取实际高度和宽度)

       先创造一个Click事件(点击事件)

private void Button_Click(object sender, RoutedEventArgs e)

        {

            嘀哒哒嘀哒哒 my = new 嘀哒哒嘀哒哒();

            my.Show();

            this.Hide();

            string wid = this.ActualWidth.ToString();

            string hei = this.ActualHeight.ToString();

            MessageBox.Show("Width:" + wid + "Height:" + hei);

        }

2、RestoreBounds(获取窗口在最小化或最大化之前的大小和位置)

       先创造一个Click事件(点击事件)

private void Button_Click(object sender, RoutedEventArgs e)

        {

         MessageBox.Show(this.Sto)

        }

6-20

3、关闭窗口事件(恢复关闭之前的窗口位置)

       先创造一个Closing事件(关闭事件),然后在后台操作。

string filename = "settings.tex";

        public Closing()

        {

            InitializeComponent();

            //刷新从先前打开的窗口恢复边界

            IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForAssembly();

            try

            {

                using

(IsolatedStorageFileStream stream = new IsolatedStorageFileStream(this.filename, System.IO.FileMode.Open, storage))

                using

(StreamReader reader = new StreamReader(stream))

                {

                    //从文件中读取恢复边界值

                    Rect restoreBounds = Rect.Parse(reader.ReadLine());

                    Left = restoreBounds.Left;

                    Top = restoreBounds.Top;

                    Width = restoreBounds.Width;

                    Height = restoreBounds.Height;

                }

            }

            catch(FileNotFoundException ex)

            {

                //当文件在独立存储中找不到,句柄:

                //*这是第一次应用程序会话

                //*文件已被删除

            }

        }

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)

        {

            //保存restorebounds,以便下次打开此窗口时使用

            IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForAssembly();

            using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filename, FileMode.Create, storage))

            using (StreamWriter writer = new StreamWriter(stream))

            {

                //写恢复边界值到文件

                writer.WriteLine(this.RestoreBounds.ToString());

            }

        }     

       以上就是恢复上次窗口关闭前的位置的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值