الانجراف عند استعادة نافذة الموقع والحجم في WPF

StackOverflow https://stackoverflow.com/questions/346309

  •  19-08-2019
  •  | 
  •  

سؤال

أنا باستخدام التعليمات البرمجية التالية إلى حفظ واستعادة النافذة موقف وحجم عند إعادة تشغيل.

أنا ومراقبة العائمة التصاعدي 28 بكسل في كل مرة تنفيذ هذا القانون!

أنا قراءة قيم خاطئة ، أو أنا استعادتها بشكل خاطئ ؟ حيث هو عدد 28 (حجم كروم؟) قادمة من (وكيف لا حساب عليه برمجيا بدلا من عدد محدد في التعليمات البرمجية)?

هنا هو بلدي رمز:

public partial class MainStudioWindowControl : RibbonWindow
{
    public MainStudioWindowControl()
    {
        App.MainWindowOwner = this;
        this.Loaded += new System.Windows.RoutedEventHandler(MainStudioWindowControl_Loaded);
    }

    void MainStudioWindowControl_Loaded(object sender, System.Windows.RoutedEventArgs e)
    {
        System.Windows.Window mainWindow = System.Windows.Application.Current.MainWindow;
        mainWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.Manual;
        if (Studio.Properties.Settings.Default.Width > 0)
        {
            mainWindow.Left = Studio.Properties.Settings.Default.Left;
            mainWindow.Top = Studio.Properties.Settings.Default.Top;
            mainWindow.Width = Studio.Properties.Settings.Default.Width;
            mainWindow.Height = Studio.Properties.Settings.Default.Height;
        }
        Debug.WriteLine(string.Format("Loading: Top = {0}", this.Top));
    }

    protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
        base.OnClosing(e);
        System.Windows.Window mainWindow = System.Windows.Application.Current.MainWindow;
        Studio.Properties.Settings.Default.Left = mainWindow.Left;
        Studio.Properties.Settings.Default.Top = mainWindow.Top;
        Studio.Properties.Settings.Default.Width = mainWindow.Width;
        Studio.Properties.Settings.Default.Height = mainWindow.Height;
        Studio.Properties.Settings.Default.Save();
        Debug.WriteLine(string.Format("Saving: Settings.Top = {0}", Studio.Properties.Settings.Default.Top));
    }
}
هل كانت مفيدة؟

المحلول

جرب هذا:

1) اشتقاق الفئة من إطار عادي ، وليس RibbonWindow - إذا كان يصلح له ، إنه RibbonWindow المسألة.

2) استخدام ترميز-الثابت القيم لضبط القياسات في تحميل معالج - إذا كان هذا يعمل على إصلاح المشكلة حصلت على أن تفعل شيئا مع الإعدادات.

مع هذه التغييرات ، لأنها عملت بشكل جيد بالنسبة لي.النافذة ظهرت حيث ينبغي في كل مرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top