mirror of
				https://gitee.com/csharpui/CPF.git
				synced 2025-11-01 00:46:56 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			965 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			965 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | ||
| using System.Collections.Generic;
 | ||
| using System.Text;
 | ||
| using CPF.Controls;
 | ||
| using CPF.Drawing;
 | ||
| using CPF.Shapes;
 | ||
| using CPF.Styling;
 | ||
| using CPF.Input;
 | ||
| using CPF;
 | ||
| using CPF.Svg;
 | ||
| using System.Diagnostics;
 | ||
| using System.Threading.Tasks;
 | ||
| using System.Threading;
 | ||
| using System.Linq;
 | ||
| 
 | ||
| namespace ConsoleApp1
 | ||
| {
 | ||
|     [CPF.Design.DesignerLoadStyle("res://ConsoleApp1/Stylesheet3.css")]
 | ||
|     public class DialogView : Control
 | ||
|     {
 | ||
|         public DialogView(Window2 window)
 | ||
|         {
 | ||
|             this.window = window;
 | ||
|         }
 | ||
|         Window2 window;
 | ||
|         protected override void InitializeComponent()
 | ||
|         {
 | ||
|             Commands.Add("DoubleClick", nameof(doubleClick), this, CommandParameter.EventSender, CommandParameter.EventArgs);
 | ||
|             Commands.Add("MouseDown", nameof(mousedown), this, CommandParameter.EventSender, CommandParameter.EventArgs);
 | ||
|             // this[nameof(Name)]=nameof(Name);
 | ||
|             //模板定义
 | ||
|             IsAntiAlias = true;
 | ||
|             Background = "#fff";
 | ||
|             CornerRadius = "8";
 | ||
|             Width = 746;
 | ||
|             Height = 415;
 | ||
|             ViewFill color = "#888";
 | ||
|             ViewFill hoverColor = "255,255,255,40";
 | ||
|             Children.Add(new TextBlock
 | ||
|             {
 | ||
|                 TextDecoration = "Underline 1 Solid #BE0C0C",
 | ||
|                 Commands =
 | ||
|                 {
 | ||
|                     {
 | ||
|                         nameof(TextBlock.MouseDown),
 | ||
|                         nameof(test123),
 | ||
|                         this,
 | ||
|                         CommandParameter.EventSender,
 | ||
|                         CommandParameter.EventArgs
 | ||
|                     },
 | ||
|                 },
 | ||
|                 Text = "🇨🇳牛运当头㊗️8881",
 | ||
|                 FontSize = 16,
 | ||
|                 MarginTop = 58,
 | ||
|                 MarginLeft = 402
 | ||
|             });
 | ||
|             Children.Add(new Panel
 | ||
|             {
 | ||
|                 //[nameof(Name)]=nameof(Name),
 | ||
|                 Name = "close",
 | ||
|                 ToolTip = "关闭",
 | ||
|                 MarginRight = 5,
 | ||
|                 MarginTop = 5,
 | ||
|                 Width = 30,
 | ||
|                 Height = 30,
 | ||
|                 Children =
 | ||
|                 {
 | ||
|                     new Line
 | ||
|                     {
 | ||
|                         MarginTop=8,
 | ||
|                         MarginLeft=8,
 | ||
|                         StartPoint = new Point(1, 1),
 | ||
|                         EndPoint = new Point(14, 13),
 | ||
|                         StrokeStyle = "2",
 | ||
|                         IsAntiAlias=true,
 | ||
|                         StrokeFill=color
 | ||
|                     },
 | ||
|                     new Line
 | ||
|                     {
 | ||
|                         MarginTop=8,
 | ||
|                         MarginLeft=8,
 | ||
|                         StartPoint = new Point(14, 1),
 | ||
|                         EndPoint = new Point(1, 13),
 | ||
|                         StrokeStyle = "2",
 | ||
|                         IsAntiAlias=true,
 | ||
|                         StrokeFill=color
 | ||
|                     }
 | ||
|                 },
 | ||
|                 Commands =
 | ||
|                 {
 | ||
|                     {
 | ||
|                         nameof(Button.MouseDown),
 | ||
|                         (s, e) => window.CloseDialogForm(this)
 | ||
|                     }
 | ||
|                 },
 | ||
|                 Triggers =
 | ||
|                 {
 | ||
|                     new Trigger(nameof(Panel.IsMouseOver), Relation.Me)
 | ||
|                     {
 | ||
|                         Setters =
 | ||
|                         {
 | ||
|                             {
 | ||
|                                 nameof(Panel.Background),
 | ||
|                                 hoverColor
 | ||
|                             }
 | ||
|                         }
 | ||
|                     }
 | ||
|                 },
 | ||
|             });
 | ||
|             Children.Add(new Button
 | ||
|             {
 | ||
|                 PresenterFor = this,
 | ||
|                 Name = nameof(按钮),
 | ||
|                 Content = new StackPanel
 | ||
|                 {
 | ||
|                     Orientation = Orientation.Horizontal,
 | ||
|                     Classes = "imgAndText",
 | ||
|                     IsGroup = true,
 | ||
|                     Children =
 | ||
|                     {
 | ||
|                         new Picture
 | ||
|                         {
 | ||
|                             Stretch = Stretch.Uniform,
 | ||
|                             Source = "res://ConsoleApp1/Resources/icon.png",
 | ||
|                             Classes = "img",
 | ||
|                             Height = 16,
 | ||
|                             Width = 16,
 | ||
|                         },
 | ||
|                         new TextBlock
 | ||
|                         {
 | ||
|                             MarginLeft = 5f,
 | ||
|                             Classes = "text",
 | ||
|                             Text = "文字",
 | ||
|                         },
 | ||
|                     },
 | ||
|                 },
 | ||
|                 MarginTop = 10,
 | ||
|                 MarginLeft = 420,
 | ||
|                 IsAntiAlias = true,
 | ||
|                 CornerRadius = new CornerRadius(12),
 | ||
|                 ToolTip = "32342",
 | ||
|                 Width = 87,
 | ||
|                 Height = 34,
 | ||
|                 Classes = "testButton",
 | ||
|             });
 | ||
|             Children.Add(new SVG
 | ||
|             {
 | ||
|                 MarginRight = 7,
 | ||
|                 PresenterFor = this,
 | ||
|                 Name = nameof(svg11),
 | ||
|                 Commands =
 | ||
|                 {
 | ||
|                     {
 | ||
|                         "MouseDown",
 | ||
|                         "svgClick",
 | ||
|                         this,
 | ||
|                         CommandParameter.EventSender,
 | ||
|                         CommandParameter.EventArgs
 | ||
|                     },
 | ||
|                 },
 | ||
|                 Source = "res://ConsoleApp1/test2.svg",
 | ||
|                 MarginTop = 48,
 | ||
|                 Width = 123,
 | ||
|                 Stretch = Stretch.Uniform,
 | ||
|             });
 | ||
|             Children.Add(new Picture
 | ||
|             {
 | ||
|                 PresenterFor = this,
 | ||
|                 Name = "pic",
 | ||
|                 Commands =
 | ||
|                 {
 | ||
|                     {
 | ||
|                         "MouseDown",
 | ||
|                         nameof(picClick),
 | ||
|                         this,
 | ||
|                         CommandParameter.EventSender,
 | ||
|                         CommandParameter.EventArgs
 | ||
|                     },
 | ||
|                 },
 | ||
|                 Stretch = Stretch.Fill,
 | ||
|                 Width = 59,
 | ||
|                 MarginLeft = 23,
 | ||
|                 Height = 57,
 | ||
|                 Source = "res://ConsoleApp1/Resources/icon.png"
 | ||
|             });
 | ||
|             Children.Add(new RadioButton
 | ||
|             {
 | ||
|                 MarginLeft = 185,
 | ||
|                 MarginTop = 10,
 | ||
|                 Background = "linear-gradient(0 0,100% 0,#EF1515 0,#15D4EF 0.3630542,#FF0000 0.5029557,#FFFFFF 1)",
 | ||
|                 Content = "RadioButton",
 | ||
|             });
 | ||
|             Children.Add(new TextBlock
 | ||
|             {
 | ||
|                 MarginLeft = 48,
 | ||
|                 MarginTop = 42,
 | ||
|                 Text = @"😉 ❁҉҉҉҉҉҉҉҉",
 | ||
|                 Name = "TextBlock123",
 | ||
|                 PresenterFor = this,
 | ||
|             });
 | ||
|             Children.Add(new Grid
 | ||
|             {
 | ||
|                 LineFill = "#E4E4E4",
 | ||
|                 LineStroke = "1,Solid",
 | ||
|                 ColumnDefinitions =
 | ||
|                 {
 | ||
|                     new ColumnDefinition
 | ||
|                     {
 | ||
|                         Width="*"
 | ||
|                     },
 | ||
|                     new ColumnDefinition
 | ||
|                     {
 | ||
|                         Width="*"
 | ||
|                     }
 | ||
|                 },
 | ||
|                 Children =
 | ||
|                 {
 | ||
|                     new Button
 | ||
|                     {
 | ||
|                         Height = 70,
 | ||
|                         Width = 89,
 | ||
|                         Commands =
 | ||
|                         {
 | ||
|                             {
 | ||
|                                 "Click",
 | ||
|                                 nameof(按钮事件),
 | ||
|                                 this,
 | ||
|                                 CommandParameter.EventSender,
 | ||
|                                 CommandParameter.EventArgs
 | ||
|                             },
 | ||
|                         },
 | ||
|                         PresenterFor = this,
 | ||
|                         Name = nameof(按钮字段),
 | ||
|                         Content = new CheckBox
 | ||
|                         {
 | ||
|                             Content = "CheckBox",
 | ||
|                         },
 | ||
|                         Attacheds =
 | ||
|                         {
 | ||
|                             {
 | ||
|                                 Grid.ColumnIndex,
 | ||
|                                 1
 | ||
|                             },
 | ||
|                         }
 | ||
|                     },
 | ||
|                     new ListBox
 | ||
|                     {
 | ||
|                         Height = 68,
 | ||
|                         Width = 73,
 | ||
|                         Items =
 | ||
|                         {
 | ||
|                             "1233",
 | ||
|                             "34242"
 | ||
|                         }
 | ||
|                     },
 | ||
|                 },
 | ||
|                 MarginLeft = 48,
 | ||
|                 MarginTop = 315,
 | ||
|                 Height = 81,
 | ||
|                 Width = 216,
 | ||
|             });
 | ||
|             Children.Add(new StackPanel
 | ||
|             {
 | ||
|                 MarginLeft = 48,
 | ||
|                 MarginTop = 58,
 | ||
|                 Orientation = Orientation.Horizontal,
 | ||
|                 Classes = "imgAndText",
 | ||
|                 IsGroup = true,
 | ||
|                 Children =
 | ||
|                 {
 | ||
|                     new Picture
 | ||
|                     {
 | ||
|                         Classes = "img",
 | ||
|                         Height = 16,
 | ||
|                         Width = 17,
 | ||
|                     },
 | ||
|                     new TextBlock
 | ||
|                     {
 | ||
|                         MarginLeft = 5f,
 | ||
|                         Classes = "text",
 | ||
|                         Text = "文字",
 | ||
|                         Foreground="#f00",
 | ||
|                     },
 | ||
|                 },
 | ||
|             });
 | ||
|             Children.Add(new Panel
 | ||
|             {
 | ||
|                 MarginLeft = 172,
 | ||
|                 MarginTop = 39,
 | ||
|                 Classes = "oneLine",
 | ||
|                 IsGroup = true,
 | ||
|                 Children =
 | ||
|                 {
 | ||
|                     new TextBox
 | ||
|                     {
 | ||
|                         MarginLeft = 2,
 | ||
|                         MarginTop = 2,
 | ||
|                         MarginBottom = 2,
 | ||
|                         MarginRight = 2,
 | ||
|                         Classes = "singleLine",
 | ||
|                     },
 | ||
|                     new TextBlock
 | ||
|                     {
 | ||
|                         Classes = "placeholde",
 | ||
|                         MarginLeft = 7,
 | ||
|                         Text = "水印",
 | ||
|                     },
 | ||
|                 },
 | ||
|                 Height = 31,
 | ||
|                 Width = 148,
 | ||
|             });
 | ||
|             Children.Add(new TabControl
 | ||
|             {
 | ||
|                 Items =
 | ||
|                 {
 | ||
|                     new TabItem
 | ||
|                     {
 | ||
|                         Content = new Panel
 | ||
|                         {
 | ||
|                             Children =
 | ||
|                             {
 | ||
|                                 new Panel
 | ||
|                                 {
 | ||
|                                     MarginLeft = 128,
 | ||
|                                     MarginTop = 20,
 | ||
|                                     Classes = "textBox,searchBox",
 | ||
|                                     IsGroup = true,
 | ||
|                                     Attacheds =
 | ||
|                                     {
 | ||
|                                         {
 | ||
|                                             AttachedExtenstions.IsEmpty,
 | ||
|                                             true,
 | ||
|                                             nameof(TextBox.Text),
 | ||
|                                             a=>a.GetChildren().First(b=>b is TextBox),
 | ||
|                                             BindingMode.OneWay,
 | ||
|                                             (string text)=>string.IsNullOrWhiteSpace(text)
 | ||
|                                         }
 | ||
|                                     },
 | ||
|                                     Children =
 | ||
|                                     {
 | ||
|                                         new TextBox
 | ||
|                                         {
 | ||
|                                             MarginTop = 3,
 | ||
|                                             MarginBottom = 3,
 | ||
|                                             MarginRight = 33,
 | ||
|                                             MarginLeft = 3,
 | ||
|                                             Classes = "singleLine",
 | ||
|                                         },
 | ||
|                                         new Button
 | ||
|                                         {
 | ||
|                                             Commands =
 | ||
|                                             {
 | ||
|                                                 {
 | ||
|                                                     nameof(Button.Click),
 | ||
|                                                     nameof(test3424),
 | ||
|                                                     this,
 | ||
|                                                     CommandParameter.EventSender,
 | ||
|                                                     CommandParameter.EventArgs
 | ||
|                                                 },
 | ||
|                                             },
 | ||
|                                             MarginTop = 0,
 | ||
|                                             MarginBottom = 0,
 | ||
|                                             MarginRight = 0,
 | ||
|                                             Width = 30,
 | ||
|                                             Content = new SVG
 | ||
|                                             {
 | ||
|                                                 IsAntiAlias = true,
 | ||
|                                                 Stretch= Stretch.Uniform,
 | ||
|                                                 Width=16,
 | ||
|                                                 Source = "<svg><path d=\"M903.744 813.248L760.768 670.272A381.952 381.952 0 0 0 832 448a384 384 0 1 0-384 384 381.952 381.952 0 0 0 222.272-71.232l142.976 142.976a63.936 63.936 0 1 0 90.496-90.496zM192 448a256 256 0 1 1 512 0 256 256 0 0 1-512 0z\"></path></svg>",
 | ||
|                                             },
 | ||
|                                         },
 | ||
|                                         new TextBlock
 | ||
|                                         {
 | ||
|                                             MarginLeft = 8,
 | ||
|                                             Classes = "placeholder",
 | ||
|                                             Text = "placeholder",
 | ||
|                                         }
 | ||
|                                     },
 | ||
|                                     Height = 30,
 | ||
|                                     Width = 200,
 | ||
|                                 },
 | ||
|                                 new DockPanel
 | ||
|                                 {
 | ||
|                                     MarginLeft = 274,
 | ||
|                                     MarginTop = 50,
 | ||
|                                     Children =
 | ||
|                                     {
 | ||
|                                         new Button
 | ||
|                                         {
 | ||
|                                             Commands =
 | ||
|                                             {
 | ||
|                                                 {
 | ||
|                                                     nameof(Button.Click),
 | ||
|                                                     nameof(addElem),
 | ||
|                                                     this,
 | ||
|                                                     CommandParameter.EventSender,
 | ||
|                                                     CommandParameter.EventArgs
 | ||
|                                                 },
 | ||
|                                             },
 | ||
|                                             Attacheds =
 | ||
|                                             {
 | ||
|                                                 {
 | ||
|                                                     DockPanel.Dock,
 | ||
|                                                     Dock.Top
 | ||
|                                                 },
 | ||
|                                             },
 | ||
|                                             Content = "Button",
 | ||
|                                         },
 | ||
|                                     },
 | ||
|                                     Height = 88,
 | ||
|                                     Width = 111,
 | ||
|                                 },
 | ||
|                                 new StackPanel
 | ||
|                                 {
 | ||
|                                     Background = "url(res://ConsoleApp1/icon.png) Tile Fill 0,0,0,0",
 | ||
|                                     RenderTransform = new GeneralTransform
 | ||
|                                     {
 | ||
|                                         Angle = 18.1f,
 | ||
|                                     },
 | ||
|                                     Children =
 | ||
|                                     {
 | ||
|                                         
 | ||
|                                     },
 | ||
|                                     BorderType = BorderType.BorderThickness,
 | ||
|                                     MarginLeft = 4,
 | ||
|                                     MarginTop = 45,
 | ||
|                                     Height = 76,
 | ||
|                                     Width = 135,
 | ||
|                                     Bindings =
 | ||
|                                     {
 | ||
|                                         {
 | ||
|                                             nameof(Panel.Children),
 | ||
|                                             nameof(MainModel.UIElements),
 | ||
|                                             null,
 | ||
|                                             BindingMode.OneWayToSource
 | ||
|                                         }
 | ||
|                                     }
 | ||
|                                 },
 | ||
|                                 new TextBlock
 | ||
|                                 {
 | ||
|                                     PresenterFor = this,
 | ||
|                                     Name = nameof(tex1231),
 | ||
|                                     Background = "#84FFA2",
 | ||
|                                     Text = "   Text     Block  ",
 | ||
|                                 },
 | ||
|                             },
 | ||
|                             Height = "100%",
 | ||
|                             Width = "100%",
 | ||
|                         },
 | ||
|                         Header = "TabItem",
 | ||
|                     },
 | ||
|                     new TabItem
 | ||
|                     {
 | ||
|                         Content = new Panel
 | ||
|                         {
 | ||
|                             BorderThickness = "50,10,20,30",
 | ||
|                             BorderType = BorderType.BorderThickness,
 | ||
|                             BorderStroke = "8,Solid",
 | ||
|                             BorderFill = "#9D9D9D",
 | ||
|                             Children =
 | ||
|                             {
 | ||
|                                 new Label
 | ||
|                                 {
 | ||
|                                     MarginLeft = 351,
 | ||
|                                     MarginTop = 9,
 | ||
|                                     Text = "Label",
 | ||
|                                 },
 | ||
|                                 new Button
 | ||
|                                 {
 | ||
|                                     Height = 37,
 | ||
|                                     Width = 91,
 | ||
|                                     MarginTop = 42,
 | ||
|                                     MarginLeft = 35,
 | ||
|                                     Content = "Button",
 | ||
|                                 },
 | ||
|                                 new CheckBox
 | ||
|                                 {
 | ||
|                                     MarginTop = 9,
 | ||
|                                     MarginLeft = 242,
 | ||
|                                     Content = "CheckBox",
 | ||
|                                 },
 | ||
|                             },
 | ||
|                             Height = "100%",
 | ||
|                             Width = "100%",
 | ||
|                         },
 | ||
|                         Header = "TabItem",
 | ||
|                     },
 | ||
|                     new TabItem
 | ||
|                     {
 | ||
|                         Content = new Panel
 | ||
|                         {
 | ||
|                             Children =
 | ||
|                             {
 | ||
|                                 new TextBlock
 | ||
|                                 {
 | ||
|                                     Height = 72,
 | ||
|                                     Width = 105,
 | ||
|                                     MarginLeft = 7,
 | ||
|                                     MarginTop = 6,
 | ||
|                                     Text = "TextBlock裁剪测试啊啊啊啊啊",
 | ||
|                                 },
 | ||
|                                 new Grid
 | ||
|                                 {
 | ||
|                                     MarginLeft = 129,
 | ||
|                                     MarginTop = 22,
 | ||
|                                     IsGroup = true,
 | ||
|                                     ColumnDefinitions =
 | ||
|                                     {
 | ||
|                                         new ColumnDefinition
 | ||
|                                         {
 | ||
|                                             
 | ||
|                                         },
 | ||
|                                         new ColumnDefinition
 | ||
|                                         {
 | ||
|                                             
 | ||
|                                         },
 | ||
|                                     },
 | ||
|                                     Children =
 | ||
|                                     {
 | ||
|                                         new GridSplitter
 | ||
|                                         {
 | ||
|                                             Height = "100%",
 | ||
|                                             MarginLeft = 0f,
 | ||
|                                             Attacheds =
 | ||
|                                             {
 | ||
|                                                 {
 | ||
|                                                     Grid.ColumnIndex,
 | ||
|                                                     1
 | ||
|                                                 },
 | ||
|                                             },
 | ||
|                                         },
 | ||
|                                         new Button
 | ||
|                                         {
 | ||
|                                             Attacheds =
 | ||
|                                             {
 | ||
|                                                 {
 | ||
|                                                     Grid.ColumnIndex,
 | ||
|                                                     1
 | ||
|                                                 },
 | ||
|                                             },
 | ||
|                                             Content = "Button",
 | ||
|                                         },
 | ||
|                                         new Button
 | ||
|                                         {
 | ||
|                                             Height = "100%",
 | ||
|                                             Width = "100%",
 | ||
|                                             Content = "Button",
 | ||
|                                         },
 | ||
|                                     },
 | ||
|                                     Height = 117,
 | ||
|                                     Width = 165,
 | ||
|                                 }
 | ||
|                             },
 | ||
|                             Height = "100%",
 | ||
|                             Width = "100%",
 | ||
|                         },
 | ||
|                         Header = new Button
 | ||
|                         {
 | ||
|                             Content = "Button",
 | ||
|                         },
 | ||
|                     },
 | ||
|                     new TabItem
 | ||
|                     {
 | ||
|                         Content = new Panel
 | ||
|                         {
 | ||
|                             Children =
 | ||
|                             {
 | ||
|                                 new Button
 | ||
|                                 {
 | ||
|                                     MarginTop = 78,
 | ||
|                                     MarginLeft = 241,
 | ||
|                                     Height = 39,
 | ||
|                                     Width = 102,
 | ||
|                                     Content = "Button1",
 | ||
|                                 },
 | ||
|                                 new Button
 | ||
|                                 {
 | ||
|                                     ZIndex = -1,
 | ||
|                                     Height = 35,
 | ||
|                                     Width = 79,
 | ||
|                                     MarginRight = 292,
 | ||
|                                     MarginBottom = 20,
 | ||
|                                     Content = "Button2",
 | ||
|                                 },
 | ||
|                                 new Button
 | ||
|                                 {
 | ||
|                                     MarginLeft = 52,
 | ||
|                                     MarginTop = 25,
 | ||
|                                     Content = "Button3",
 | ||
|                                 },
 | ||
|                                 new Button
 | ||
|                                 {
 | ||
|                                     Height = 35,
 | ||
|                                     Width = 99,
 | ||
|                                     ZIndex = 1,
 | ||
|                                     MarginLeft = 266,
 | ||
|                                     MarginTop = 21,
 | ||
|                                     Content = "Button4",
 | ||
|                                 },
 | ||
|                                 new Border
 | ||
|                                 {
 | ||
|                                     Child = new Ellipse
 | ||
|                                     {
 | ||
|                                         Fill = "url(res://ConsoleApp1/Resources/icon.png) Clamp Fill 0,0,0,0",
 | ||
|                                         Height = "100%",
 | ||
|                                         Width = "100%",
 | ||
|                                     },
 | ||
|                                     ShadowBlur = 10,
 | ||
|                                     MarginLeft = 128,
 | ||
|                                     MarginTop = 10,
 | ||
|                                     Height = 78,
 | ||
|                                     Width = 122,
 | ||
|                                 }
 | ||
|                             },
 | ||
|                             Height = "100%",
 | ||
|                             Width = "100%",
 | ||
|                         },
 | ||
|                         Header = "TabItem",
 | ||
|                     },
 | ||
|                     new TabItem
 | ||
|                     {
 | ||
|                         Content = new Panel
 | ||
|                         {
 | ||
|                             Children =
 | ||
|                             {
 | ||
|                                 new Grid
 | ||
|                                 {
 | ||
|                                     Children =
 | ||
|                                     {
 | ||
|                                         new TextBlock
 | ||
|                                         {
 | ||
|                                             Text = "          TextBlock",
 | ||
|                                         },
 | ||
|                                         new TextBox
 | ||
|                                         {
 | ||
|                                             Background = "#C3C3C3",
 | ||
|                                             Text = "1231",
 | ||
|                                             MarginLeft = 18,
 | ||
|                                             MarginTop = 10,
 | ||
|                                             Height = 69,
 | ||
|                                             Width = 152,
 | ||
|                                             Padding="5",
 | ||
|                                         },
 | ||
|                                     },
 | ||
|                                     Height = 117,
 | ||
|                                     Width = 272,
 | ||
|                                 },
 | ||
|                             },
 | ||
|                             Height = "100%",
 | ||
|                             Width = "100%",
 | ||
|                         },
 | ||
|                         Header = "TabItem",
 | ||
|                     },
 | ||
|                     new TabItem
 | ||
|                     {
 | ||
|                         Content = new Panel
 | ||
|                         {
 | ||
|                             Children =
 | ||
|                             {
 | ||
|                                 new Panel
 | ||
|                                 {
 | ||
|                                     MarginLeft = 251,
 | ||
|                                     MarginTop = 10,
 | ||
|                                     Children =
 | ||
|                                     {
 | ||
|                                         new StackPanel
 | ||
|                                         {
 | ||
|                                             Height = 106,
 | ||
|                                             MarginLeft = 12,
 | ||
|                                             MarginTop = 9,
 | ||
|                                             Children =
 | ||
|                                             {
 | ||
|                                                 new TextBlock
 | ||
|                                                 {
 | ||
|                                                     Text = "Tex3424222tBddk",
 | ||
|                                                     MaxWidth="100%",
 | ||
|                                                     Name="test"
 | ||
|                                                 },
 | ||
|                                                 new ListBox
 | ||
|                                                 {
 | ||
|                                                     MarginTop=5,
 | ||
|                                                     ItemsPanel=new StackPanel
 | ||
|                                                     {
 | ||
|                                                         Orientation= Orientation.Horizontal
 | ||
|                                                     },
 | ||
|                                                     Items =
 | ||
|                                                     {
 | ||
|                                                         new Button
 | ||
|                                                         {
 | ||
|                                                             Content="23"
 | ||
|                                                         },
 | ||
|                                                         new Button
 | ||
|                                                         {
 | ||
|                                                             Content="213"
 | ||
|                                                         },
 | ||
|                                                     }
 | ||
|                                                 },
 | ||
|                                             },
 | ||
|                                             Width = 86,
 | ||
|                                         }
 | ||
|                                     },
 | ||
|                                 },
 | ||
|                                 new Grid
 | ||
|                                 {
 | ||
|                                     Children =
 | ||
|                                     {
 | ||
|                                         new Label
 | ||
|                                         {
 | ||
|                                             MarginTop = 10,
 | ||
|                                             MarginLeft = 19,
 | ||
|                                             Text = "Label",
 | ||
|                                         },
 | ||
|                                         new Button
 | ||
|                                         {
 | ||
|                                             Height = 28,
 | ||
|                                             Width = 73,
 | ||
|                                             MarginTop = 4,
 | ||
|                                             MarginLeft = 80,
 | ||
|                                             Content = "Button",
 | ||
|                                         },
 | ||
|                                         new TextBlock
 | ||
|                                         {
 | ||
|                                             MarginTop = 70,
 | ||
|                                             MarginLeft = 65,
 | ||
|                                             Text = "TextBlock",
 | ||
|                                         },
 | ||
|                                     },
 | ||
|                                     Height = 104,
 | ||
|                                     Width = 138,
 | ||
|                                     MarginTop = 16,
 | ||
|                                     MarginLeft = 18,
 | ||
|                                 },
 | ||
|                             },
 | ||
|                             Height = "100%",
 | ||
|                             Width = "100%",
 | ||
|                         },
 | ||
|                         Header = "TabItem",
 | ||
|                     },
 | ||
|                 },
 | ||
|                 Height = 183,
 | ||
|                 Width = 402,
 | ||
|             });
 | ||
|             Children.Add(new ComboBox
 | ||
|             {
 | ||
|                 PresenterFor = this,
 | ||
|                 Name = nameof(comBox),
 | ||
|                 MarginLeft = 171,
 | ||
|                 MarginTop = 76,
 | ||
|             });
 | ||
|             Children.Add(new ComboBox
 | ||
|             {
 | ||
|                 //IsVirtualizing=true,
 | ||
|                 //IsEditable=true,
 | ||
|                 //SelectionMode= SelectionMode.Multiple,
 | ||
|                 SelectedIndex = 2,
 | ||
|                 MarginTop = 96,
 | ||
|                 MarginLeft = 48,
 | ||
|                 Width = 100,
 | ||
|                 Height = 25,
 | ||
|                 ItemTemplate = new ListBoxItem
 | ||
|                 {
 | ||
|                     Width = "100%",
 | ||
|                     FontSize = 14,
 | ||
|                     ContentTemplate = new ContentTemplate
 | ||
|                     {
 | ||
|                         Width = "auto",
 | ||
|                         MarginLeft = 5,
 | ||
|                     }
 | ||
|                 },
 | ||
|                 Bindings =
 | ||
|                 {
 | ||
|                     {
 | ||
|                         nameof(ComboBox.Items),
 | ||
|                         nameof(MainModel.TestItems),
 | ||
|                         null,
 | ||
|                         BindingMode.TwoWay
 | ||
|                     },
 | ||
|                     {
 | ||
|                         nameof(ComboBox.SelectedValue),
 | ||
|                         nameof(MainModel.SelectValue),
 | ||
|                         null,
 | ||
|                         BindingMode.TwoWay
 | ||
|                     },
 | ||
|                 },
 | ||
|                 DisplayMemberPath = "Item1",
 | ||
|                 SelectedValuePath = "Item2",//IsVirtualizing=true
 | ||
|             });
 | ||
|         }
 | ||
|         TextBlock tex1231;
 | ||
|         ComboBox comBox;
 | ||
|         Button 按钮;
 | ||
|         Button 按钮字段;
 | ||
|         SVG svg11;
 | ||
| #if !DesignMode //用户代码写到这里,设计器下不执行,防止设计器出错
 | ||
|         protected override void OnInitialized()
 | ||
|         {
 | ||
|             base.OnInitialized();
 | ||
|             svg11 = FindPresenterByName<SVG>(nameof(svg11));
 | ||
|             按钮字段 = FindPresenterByName<Button>(nameof(按钮字段));
 | ||
|             按钮 = FindPresenterByName<Button>(nameof(按钮));
 | ||
|             comBox = FindPresenterByName<ComboBox>(nameof(comBox));
 | ||
|             tex1231 = FindPresenterByName<TextBlock>(nameof(tex1231));
 | ||
| 
 | ||
| 
 | ||
|             for (int i = 0; i < 10; i++)
 | ||
|             {
 | ||
|                 comBox.Items.Add(i.ToString());
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         protected override void OnRender(DrawingContext dc)
 | ||
|         {
 | ||
|             base.OnRender(dc);
 | ||
|             using (SolidColorBrush sb = new SolidColorBrush(Color.Red))
 | ||
|             {
 | ||
|                 using (var b = new SolidColorBrush(Color.Green))
 | ||
|                 {
 | ||
|                     using (var path = new PathGeometry())
 | ||
|                     {
 | ||
|                         path.BeginFigure(0, 0);
 | ||
|                         path.LineTo(100, 100);
 | ||
|                         path.LineTo(0, 100);
 | ||
|                         path.EndFigure(false);
 | ||
|                         var m = Matrix.Identity;
 | ||
|                         m.Rotate(20);
 | ||
|                         //m.Translate(120, 120);
 | ||
|                         path.Transform(m);
 | ||
|                         using (var p = path.CreateStrokePath())
 | ||
|                         {
 | ||
|                             var mm = dc.Transform;
 | ||
|                             //var old = mm;
 | ||
|                             //mm.Scale(3, 3);
 | ||
|                             //mm.Translate(-100, -100);
 | ||
|                             //dc.Transform = mm;
 | ||
|                             dc.DrawPath(sb, new Stroke(1, DashStyles.DashDot), p);
 | ||
|                             //dc.DrawPath(b, new Stroke(1), path);
 | ||
|                             //dc.Transform = old;
 | ||
|                         }
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         void Test()
 | ||
|         {
 | ||
|             MessageBox.Show("//if ");
 | ||
|             //if (Root.Styles.Count == 0)
 | ||
|             //{
 | ||
|             //Root.Styles.Add(new Style(new ClassSelector("testButton").Descendant().OfType<TextBlock>())
 | ||
|             //{
 | ||
|             //    Setters =
 | ||
|             //    {
 | ||
|             //        { nameof(Button.Background), "#f00" }
 | ||
|             //    }
 | ||
|             //});
 | ||
|             //Root.Styles.Add(new Style(new ClassSelector("testButton").Descendant().OfType<TextBlock>()));
 | ||
|             //Root.Styles.Add(new Style(new TypeSelector(typeof(Button))));
 | ||
|             //Root.Styles.Add(new Style(new TypeSelector(typeof(CheckBox)).Descendant().Name("indeterminateMark")));
 | ||
|             //Root.Styles.Add(new Style(new TypeSelector(typeof(TabItem)).PropertyEquals("IsSelected", true)));
 | ||
|             //}
 | ||
| 
 | ||
|             //Stopwatch stopwatch = new Stopwatch();
 | ||
|             //stopwatch.Start();
 | ||
|             //foreach (var item in Root.Find<UIElement>())
 | ||
|             //{
 | ||
|             //    foreach (var selector in Root.Styles)
 | ||
|             //    {
 | ||
|             //        if (selector.Selector.Select(item))
 | ||
|             //        {
 | ||
|             //            var prev = selector.Selector.Prev;
 | ||
|             //            if (prev == null)
 | ||
|             //            {
 | ||
|             //                //System.Diagnostics.Debug.WriteLine(item);
 | ||
|             //                continue;
 | ||
|             //            }
 | ||
|             //            var element = item;
 | ||
|             //            while (prev != null)
 | ||
|             //            {
 | ||
|             //                if (prev is Selector selector1)
 | ||
|             //                {
 | ||
|             //                    if (selector1.Select(element))
 | ||
|             //                    {
 | ||
|             //                        if (prev.Prev == null)
 | ||
|             //                        {
 | ||
|             //                            //System.Diagnostics.Debug.WriteLine(element);
 | ||
|             //                        }
 | ||
|             //                    }
 | ||
|             //                    else
 | ||
|             //                    {
 | ||
|             //                        break;
 | ||
|             //                    }
 | ||
|             //                }
 | ||
|             //                else if (prev is ChildSelector)
 | ||
|             //                {
 | ||
|             //                    element = element.Parent;
 | ||
|             //                }
 | ||
|             //                else
 | ||
|             //                {
 | ||
|             //                    var p = element.Parent;
 | ||
|             //                    var select = prev.Prev as Selector;
 | ||
|             //                    while (p != null)
 | ||
|             //                    {
 | ||
|             //                        if (select.Select(p))
 | ||
|             //                        {
 | ||
|             //                            if (select.Prev == null)
 | ||
|             //                            {
 | ||
|             //                                //System.Diagnostics.Debug.WriteLine(element);
 | ||
|             //                            }
 | ||
|             //                            break;
 | ||
|             //                        }
 | ||
|             //                        p = p.Parent;
 | ||
|             //                    }
 | ||
|             //                    if (p == null)
 | ||
|             //                    {
 | ||
|             //                        break;
 | ||
|             //                    }
 | ||
|             //                    prev = prev.Prev;
 | ||
|             //                }
 | ||
|             //                prev = prev.Prev;
 | ||
|             //            }
 | ||
| 
 | ||
|             //        }
 | ||
|             //    }
 | ||
|             //}
 | ||
| 
 | ||
|             //stopwatch.Stop();
 | ||
|             //Debug.WriteLine(stopwatch.ElapsedMilliseconds);
 | ||
|         }
 | ||
|         void picClick(CpfObject obj, MouseButtonEventArgs eventArgs)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         void mousedown(CpfObject obj, MouseButtonEventArgs eventArgs)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         void doubleClick(CpfObject obj, RoutedEventArgs eventArgs)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         void 按钮事件(CpfObject obj, RoutedEventArgs eventArgs)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         void test3424(CpfObject obj, RoutedEventArgs eventArgs)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         void addElem(CpfObject obj, RoutedEventArgs eventArgs)
 | ||
|         {
 | ||
|             (DataContext as MainModel).UIElements.Add(new Button { Content = "刀斧手" });
 | ||
|         }
 | ||
| #endif
 | ||
|         void test123(CpfObject obj, MouseButtonEventArgs eventArgs)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|     }
 | ||
| }
 | 
