Я пытаюсь сделать свое главное окно, чтобы запомнить и восстановить положение и размер при запуске. Поэтому я попытался связать местоположение запуска моего окна до свойств в моем ViewModel следующим образом:Binding WindowStartupLocation
<Window x:Class="MyApp.Views.MainWindow"
...
Width="{Binding Width}"
Height="{Binding Height}"
WindowStartupLocation="{Binding WindowStartupLocation}"
WindowState="{Binding WindowState}"
MinHeight="600"
MinWidth="800"
Closing="OnWindowClosing"
Closed="OnWindowClosed"
ContentRendered="OnMainWindowReady"
...>
Мой ViewModel:
...
// Default settings
WindowState = (WindowState)FormWindowState.Normal;
this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
Width = 800;
Height = 600;
// check if the saved bounds are nonzero and is visible on any screen
if (Properties.Settings.Default.WindowStartupLocation != Rectangle.Empty &&
IsVisibleOnAnyScreen(Properties.Settings.Default.WindowStartupLocation))
{
this.WindowStartupLocation = WindowStartupLocation.Manual;
this.WindowState = (WindowState)Properties.Settings.Default.WindowState;
Height = Properties.Settings.Default.WindowStartupLocation.Size.Height;
Width = Properties.Settings.Default.WindowStartupLocation.Size.Width;
Left = Properties.Settings.Default.WindowStartupLocation.Left;
Top = Properties.Settings.Default.WindowStartupLocation.Top;
}
...
Когда я запустить приложение я получаю System.Windows.Markup .XamlParseException и Дополнительная информация: «Свойство привязки» не может быть установлено в свойстве «WindowStartupLocation» типа «MainWindow». «Связывание» может быть установлено только на DependencyProperty объекта DependencyObject.
Как исправить это?
Хм, проблема кажется более сложной, чем я. Но спасибо, плохо попробуйте :) – Lynct