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); }
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)); }
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); }
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); } }