示例#1
0
        /// <summary>
        /// Makes sure the view is a window is is wrapped by one.
        /// </summary>
        /// <param name="model">The view model.</param>
        /// <param name="view">The view.</param>
        /// <param name="isDialog">Whethor or not the window is being shown as a dialog.</param>
        /// <returns>The window.</returns>
        protected virtual Window EnsureWindow(object model, object view, bool isDialog)
        {
            if (view is Window window)
            {
                var owner = this.InferOwnerOf(window);
                if (owner != null && isDialog)
                {
                    window.Owner = owner;
                }
            }
            else
            {
                window = new MaterialDesignWindow
                {
                    Content       = view,
                    SizeToContent = SizeToContent.WidthAndHeight
                };

                window.SetValue(View.IsGeneratedProperty, true);

                var owner = this.InferOwnerOf(window);
                if (owner != null)
                {
                    window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
                    window.Owner = owner;
                }
                else
                {
                    window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                }
            }

            return(window);
        }
示例#2
0
        public MainWindow()
        {
            MaterialDesignWindow.RegisterCommands(this);
            InitializeComponent();


            // рабочая папка
            var baseDirectory = Environment.CurrentDirectory;;

            // сервис для работы с данными приложения
            var dataService = new DefaultApplicationDataService(
                Path.Combine(baseDirectory, "Data", "Airplanes"),
                Path.Combine(baseDirectory, "Data", "Videos"),
                Path.Combine(baseDirectory, "Data", "Managers"),
                Path.Combine(baseDirectory, "Data"));

            // основная модель представления
            var mainViewModel = new ApplicationViewModel(new DefaultDialogService(), dataService);

            // обработчик события закрытия окна
            Closing += mainViewModel.OnWindowClosing;

            // запись модели представления в контекст окна
            DataContext = mainViewModel;
        }
示例#3
0
        public MainWindow()
        {
            Version();
            CreateFolder();

            _roo_db = new DBlist();
            DBSerializer.ReadDB(ref _roo_db);
            _user_data_manager = new UserDataManager();

            MaterialDesignWindow.RegisterCommands(this);
            InitializeComponent();

            InitializeMDI();
        }
示例#4
0
        protected override Window EnsureWindow(object model, object view, bool isDialog)
        {
            if (view == null)
            {
                // TODO: handle
            }

            if (!(view is Window window))
            {
                window = new MaterialDesignWindow
                {
                    Content       = view,
                    SizeToContent = SizeToContent.WidthAndHeight
                };

                window.SetValue(View.IsGeneratedProperty, true); // set this only if we created it here
            }

            var owner = this.InferOwnerOf(window);

            if (owner != null)
            {
                window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
                window.Owner = owner;
            }
            else
            {
                window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
            }

            if (isDialog)
            {
                window.ShowInTaskbar = window.Owner != null;
                window.SizeToContent = SizeToContent.WidthAndHeight;
                window.ResizeMode    = ResizeMode.NoResize;
            }

            return(window);
        }
示例#5
0
 public MainWindow()
 {
     MaterialDesignWindow.RegisterCommands(this);
     InitializeComponent();
 }