private void UpdateModeloModern()
        {
            ID_Ano = Anos.GetValue(UC_ComboBox_Ano.SelectedValue.ToString()).Value;
            UC_TabPage_TI_DG_Livros.ItemsSource = LivrosEngine.GetLivrosWithCiclo(ID_Ano).OrderBy(x => x.Ano).ThenBy(x => Disciplinas.GetValue(x.Disciplina));
            if (Modelo_Modern == null)
            {
                Modelo_Modern = new Models.Modelo_Modern_Matricula();
                Modelo_Modern.EditorMode();
                Modelo_Modern.Editor = this;
                UC_DockPanel_Modelo.Children.Add(Modelo_Modern);
            }
            string ano = UC_ComboBox_Ano.SelectedValue.ToString();

            if (ano.Contains('-'))
            {
                string[] split = ano.Split('-');
                Modelo_Modern.AnoLectivo     = split[0];
                Modelo_Modern.Escola         = split[1];
                Modelo_Modern.EnsinoSuperior = true;
            }
            else
            {
                Modelo_Modern.EnsinoSuperior = false;
                Modelo_Modern.AnoLectivo     = UC_ComboBox_Ano.SelectedValue.ToString();
                Modelo_Modern.Escola         = UC_ComboBox_Escola.SelectedValue.ToString();
            }
            if (Escola.GetKey(UC_ComboBox_Escola.SelectedItem.ToString()) == 999)
            {
                Modelo_Modern.Escola = "";
            }
            Modelo_Modern._Ano = ID_Ano;

            Modelo_Modern.disciplinasGeral      = new List <_Disciplina>();
            Modelo_Modern.disciplinasEspecifica = new List <_Disciplina>();

            if (DadosMatricula.Componetes.ContainsKey(ID_Ano))
            {
                Modelo_Modern.disciplinasGeral      = DadosMatricula.Componetes[ID_Ano].Where(x => x.Superior == false).ToList();
                Modelo_Modern.disciplinasEspecifica = DadosMatricula.Componetes[ID_Ano].Where(x => x.Superior == true).ToList();
            }

            Modelo_Modern.FillTablesEmpty();
        }
        private void UC_ComboBox_ModelVersion_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (!IsLoaded)
            {
                return;
            }

            UC_DockPanel_Modelo.Children.Clear();
            if (UC_ComboBox_ModelVersion.SelectedIndex == 0)
            {
                UC_DockPanel_Modelo.Children.Add(Modelo);
                UpdateModelo();
            }
            if (UC_ComboBox_ModelVersion.SelectedIndex == 1)
            {
                if (Modelo_Modern == null)
                {
                    Modelo_Modern = new Models.Modelo_Modern_Matricula();
                }
                UC_DockPanel_Modelo.Children.Add(Modelo_Modern);
                Modelo_Modern.EditorMode();
                UpdateModeloModern();
            }
        }
        private void UC_Button_Print_Click(object sender, RoutedEventArgs e)
        {
            Window  window  = new Window();
            Viewbox viewbox = new Viewbox();

            window.Content = viewbox;
            if (UC_ComboBox_ModelVersion.SelectedIndex == 0)
            {
                Models.Modelo_Matricula matricula = new Models.Modelo_Matricula();
                matricula.disciplinasGeral            = Modelo.disciplinasGeral;
                matricula.DisciplinasEspecificasNomes = Modelo.DisciplinasEspecificasNomes;
                matricula.EnsinoSuperior           = Modelo.EnsinoSuperior;
                matricula.UC_TextBlock_Ano.Text    = Modelo.UC_TextBlock_Ano.Text;
                matricula.UC_TextBlock_Escola.Text = Modelo.UC_TextBlock_Escola.Text;
                matricula.disciplinasEspecifica    = Modelo.disciplinasEspecifica;
                matricula.Primeiro_Ciclo           = Modelo.Primeiro_Ciclo;
                matricula.FillTablesEmpty();

                viewbox.Child = matricula;

                window.SizeToContent = SizeToContent.Width;
                window.Height        = (System.Windows.SystemParameters.PrimaryScreenHeight * 0.8f);
                //window.Width = (double)new LengthConverter().ConvertFrom("21cm");
                //window.Height = (double)new LengthConverter().ConvertFrom("29.7cm");
                window.Show();
                PrintDialog print = new PrintDialog();
                if (print.ShowDialog() == true)
                {
                    print.PrintVisual(matricula, string.Format("{0} - {1}", matricula.AnoLectivo, matricula.Escola));
                    window.Close();
                }
            }

            if (UC_ComboBox_ModelVersion.SelectedIndex == 1)
            {
                Models.Modelo_Modern_Matricula matricula = new Models.Modelo_Modern_Matricula();
                matricula.disciplinasGeral            = Modelo_Modern.disciplinasGeral;
                matricula.DisciplinasEspecificasNomes = Modelo_Modern.DisciplinasEspecificasNomes;
                matricula.EnsinoSuperior           = Modelo_Modern.EnsinoSuperior;
                matricula.UC_TextBlock_Ano.Text    = Modelo_Modern.UC_TextBlock_Ano.Text;
                matricula.UC_TextBlock_Escola.Text = Modelo_Modern.UC_TextBlock_Escola.Text;
                matricula.disciplinasEspecifica    = Modelo_Modern.disciplinasEspecifica;
                matricula.Primeiro_Ciclo           = Modelo_Modern.Primeiro_Ciclo;
                matricula.FillTablesEmpty();

                matricula.Escola = Modelo_Modern.UC_TextBlock_Escola.Text;
                RenderOptions.SetBitmapScalingMode(matricula, BitmapScalingMode.HighQuality);
                RenderOptions.SetEdgeMode(matricula, EdgeMode.Unspecified);
                matricula.SnapsToDevicePixels = true;
                viewbox.Child = matricula;

                window.SizeToContent = SizeToContent.Width;
                window.Height        = (System.Windows.SystemParameters.PrimaryScreenHeight * 0.8f);
                //window.Width = (double)new LengthConverter().ConvertFrom("21cm");
                //window.Height = (double)new LengthConverter().ConvertFrom("29.7cm");
                window.Show();
                PrintDialog print = new PrintDialog();
                if (print.ShowDialog() == true)
                {
                    print.PrintVisual(matricula, string.Format("{0} - {1}", matricula.AnoLectivo, matricula.Escola));
                    window.Close();
                }
            }
        }