Example #1
0
        public void test()
        {
            string         xaml          = loadResource("TestProject1.Xaml.EnumsTest.ObjectToCreate.xml");
            ObjectToCreate createdObject = XamlParser.CreateFromXaml <ObjectToCreate>(xaml, null, new List <string>()
            {
                "clr-namespace:TestProject1.Xaml.EnumsTest;assembly=TestProject1"
            });

            Assert.IsTrue(createdObject.MyEnum == MyEnumeration.Variant2);
        }
Example #2
0
        public void test()
        {
            string         xaml          = loadResource("TestProject1.Xaml.TypeExtensionTest.object.xml");
            ObjectToCreate createdObject = XamlParser.CreateFromXaml <ObjectToCreate>(xaml, null, new List <string>()
            {
                "clr-namespace:TestProject1.Xaml.TypeExtensionTest;assembly=TestProject1"
            });

            Assert.IsTrue(createdObject.Type == typeof(ObjectToCreate));
        }
Example #3
0
        public void TestXamlObject1()
        {
            var          assembly     = Assembly.GetExecutingAssembly();
            const string resourceName = "TestProject1.Xaml.XamlObject1.xml";
            XamlObject   createdFromXaml;

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                using (StreamReader reader = new StreamReader(stream))
                {
                    string result = reader.ReadToEnd();
                    createdFromXaml = XamlParser.CreateFromXaml <XamlObject>(result, null, new List <string>());
                }
            Assert.IsTrue(createdFromXaml.X == 5);
            Assert.IsTrue(createdFromXaml.StrProp == "str");
            Assert.IsTrue(createdFromXaml.Content.X == 10);
        }
Example #4
0
        public static Control LoadFromXaml(string xamlResourceName, object dataContext)
        {
            var assembly = Assembly.GetEntryAssembly();

            using (Stream stream = assembly.GetManifestResourceStream(xamlResourceName)) {
                if (null == stream)
                {
                    throw new ArgumentException("Resource not found.", "xamlResourceName");
                }
                using (StreamReader reader = new StreamReader(stream)) {
                    string result = reader.ReadToEnd( );
                    return(XamlParser.CreateFromXaml <Control>(result, dataContext, new List <string>()
                    {
                        "clr-namespace:Xaml;assembly=Xaml",
                        "clr-namespace:ConsoleFramework.Xaml;assembly=ConsoleFramework",
                        "clr-namespace:ConsoleFramework.Controls;assembly=ConsoleFramework",
                    }));
                }
            }
        }
        private static void Main(string[] args)
        {
//            Control window = ConsoleApplication.LoadFromXaml( "ConsoleFramework.Layout.xml", null );
////            window.FindChildByName< TextBlock >( "text" ).MouseDown += ( sender, eventArgs ) => {
////                window.FindChildByName< TextBlock >( "text" ).Text = "F";
////                eventArgs.Handled = true;
////            };
////            window.MouseDown += ( sender, eventArgs ) => {
////                window.Width = window.ActualWidth + 3;
////                window.Invalidate(  );
////            };
//            ConsoleApplication.Instance.Run( window );
//            return;

            var    assembly     = Assembly.GetExecutingAssembly();
            var    resourceName = "Examples.GridTest.xml";
            Window createdFromXaml;

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                using (StreamReader reader = new StreamReader(stream))
                {
                    string        result      = reader.ReadToEnd();
                    MyDataContext dataContext = new MyDataContext( );
                    dataContext.Str = "Введите заголовок";
                    createdFromXaml = XamlParser.CreateFromXaml <Window>(result, dataContext, new List <string>()
                    {
                        "clr-namespace:Xaml;assembly=Xaml",
                        "clr-namespace:ConsoleFramework.Xaml;assembly=ConsoleFramework",
                        "clr-namespace:ConsoleFramework.Controls;assembly=ConsoleFramework",
                    });
                }
//            ConsoleApplication.Instance.Run(createdFromXaml);
//            return;

            using (ConsoleApplication application = ConsoleApplication.Instance) {
                Panel panel = new Panel();
                panel.Name = "panel1";
                panel.HorizontalAlignment = HorizontalAlignment.Center;
                panel.VerticalAlignment   = VerticalAlignment.Stretch;
                panel.XChildren.Add(new TextBlock()
                {
                    Name   = "label1",
                    Text   = "Label1",
                    Margin = new Thickness(1, 2, 1, 0)
                             //,Visibility = Visibility.Collapsed
                });
                panel.XChildren.Add(new TextBlock()
                {
                    Name = "label2",
                    Text = "Label2_____",
                    HorizontalAlignment = HorizontalAlignment.Right
                });
                TextBox textBox = new TextBox()
                {
                    MaxWidth            = 10,
                    Margin              = new Thickness(1),
                    HorizontalAlignment = HorizontalAlignment.Center,
                    Size = 15
                };
                Button button = new Button()
                {
                    Name                = "button1",
                    Caption             = "Button!",
                    Margin              = new Thickness(1),
                    HorizontalAlignment = HorizontalAlignment.Center
                };
                button.OnClick += (sender, eventArgs) => {
                    Debug.WriteLine("Click");
                    MessageBox.Show("Окно сообщения", "Внимание ! Тестовое сообщение", delegate(MessageBoxResult result) {  });
                    Control label = panel.FindDirectChildByName("label1");
                    if (label.Visibility == Visibility.Visible)
                    {
                        label.Visibility = Visibility.Collapsed;
                    }
                    else if (label.Visibility == Visibility.Collapsed)
                    {
                        label.Visibility = Visibility.Hidden;
                    }
                    else
                    {
                        label.Visibility = Visibility.Visible;
                    }
                    label.Invalidate();
                };
                ComboBox comboBox = new ComboBox(  )
                {
//                        Width = 14
//HorizontalAlignment = HorizontalAlignment.Stretch
                };
                comboBox.Items.Add("Сделать одно");
                comboBox.Items.Add("Сделать второе");
                comboBox.Items.Add("Ничего не делать");
                ListBox listbox = new ListBox(  );
                listbox.Items.Add("First item");
                listbox.Items.Add("second item1!!!!!!1fff");
                listbox.HorizontalAlignment = HorizontalAlignment.Stretch;
                //listbox.Width = 10;

                panel.XChildren.Add(comboBox);
                panel.XChildren.Add(button);
                panel.XChildren.Add(textBox);
                panel.XChildren.Add(listbox);

                //application.Run(panel);
                WindowsHost windowsHost = new WindowsHost()
                {
                    Name = "WindowsHost"
                };
                Window window1 = new Window {
                    X = 5,
                    Y = 4,
                    //MinHeight = 100,
                    //MaxWidth = 30,
                    //Width = 10,
                    Height  = 20,
                    Name    = "Window1",
                    Title   = "Window1",
                    Content = panel
                };
                GroupBox groupBox = new GroupBox(  );
                groupBox.Title = "Группа";
                ScrollViewer scrollViewer = new ScrollViewer(  );
                ListBox      listBox      = new ListBox(  );
                listBox.Items.Add("Длинный элемент");
                listBox.Items.Add("Длинный элемент 2");
                listBox.Items.Add("Длинный элемент 3");
                listBox.Items.Add("Длинный элемент 4");
                listBox.Items.Add("Длинный элемент 5");
                listBox.Items.Add("Длинный элемент 6");
                listBox.Items.Add("Длинный элемент 700");
                listBox.HorizontalAlignment = HorizontalAlignment.Stretch;
                listBox.VerticalAlignment   = VerticalAlignment.Stretch;
                scrollViewer.Content        = listBox;
//                scrollViewer.HorizontalAlignment = HorizontalAlignment.Stretch;
                scrollViewer.VerticalAlignment       = VerticalAlignment.Stretch;
                scrollViewer.HorizontalScrollEnabled = false;

                groupBox.Content             = scrollViewer;
                groupBox.HorizontalAlignment = HorizontalAlignment.Stretch;

                windowsHost.Show(new Window()
                {
                    X = 30,
                    Y = 6,
                    //MinHeight = 10,
                    //MinWidth = 10,
                    Name    = "LongTitleWindow",
                    Title   = "Очень длинное название окна",
                    Content = groupBox
                });
                windowsHost.Show(window1);
                windowsHost.Show(createdFromXaml);
                //textBox.SetFocus(); todo : научиться задавать фокусный элемент до добавления в визуальное дерево
                //application.TerminalSizeChanged += ( sender, eventArgs ) => {
                //    application.CanvasSize = new Size(eventArgs.Width, eventArgs.Height);
                //   application.RootElementRect = new Rect(new Size(eventArgs.Width, eventArgs.Height));
                // };
                //windowsHost.Width = 80;
                //windowsHost.Height = 20;
                application.Run(windowsHost);                //, new Size(80, 30), Rect.Empty);
            }
        }