ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

WPF学习-x名称空间

WPF学习-x名称空间 WPF学习-x名称空间1.x:Class的作用定义这个Attribute的作用就是告诉XMAL编译器编译出来的代码和哪个C#的后台代码合并。比如说我们新建一个wpfx:Class“WpfApp3.MainWindow”​Windowx:ClassWpfApp3.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfApp3mc:IgnorabledTitleMainWindowHeight450Width800StackPanelTextBoxx:NameMyTextBoxMargin5/TextBoxButtonContenthelloHeight30ClickButton_Click/Button/StackPanel/Window​​namespaceWpfApp3{/// summary/// MainWindow.xaml 的交互逻辑/// /summarypublicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}privatevoidButton_Click(objectsender,RoutedEventArgse){MyTextBox.Texthello;}}}这里的Window x:ClassWpfApp3.MainWindow就是表示等下编译完你和后面这个MainWindow的.CS代码合并但是如果将这个x:class改成WindowsABC也可以运行但是这些和后台联动的代码都不起作用了。​Windowx:ClassWpfApp3.WindowABCxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfApp3mc:IgnorabledTitleMainWindowHeight450Width800StackPanelTextBoxx:NameMyTextBoxMargin5/TextBoxButtonContenthelloHeight30/Button/StackPanel/Window​2.x:Name的作用定义就是将XMAL的对象声明一个引用变量这个引用变量的名字就时x:Name后面的名称。StackPanelTextBoxx:NameMyTextBoxMargin5/TextBoxButtonContenthelloHeight30/Button/StackPanel类似于这种3.x:Key的作用定义为资源定义资源的索引Window.Resourcessys:Stringx:KeymyStringhello world/sys:String/Window.ResourcesStackPanelx:NameMyStackPanelTextBoxx:NamemyTxt1Margin5Text{StaticResource ResourceKeymyString}/TextBoxTextBoxx:NamemyTxt2Margin5/TextBoxButtonMargin5ClickButton_ClickHeight20ContentClick me/Button/StackPanel这个x:Key“myString” 就是字符串4.x:Type的作用定义为一个类型取个名称第一步创建一个新的windowWindowx:ClassWpfApp4.MyWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfApp4mc:IgnorabledTitleMyWindowHeight100Width50StackPanelTextBoxMargin5/TextBoxTextBoxMargin5/TextBoxTextBoxMargin5/TextBox/StackPanel/Window第二步新建一个Mybutton的类派生字Button,新建一个type的类型并且重写Onclick的方法再Onclick的外部事件触发完成后再次将这个type类型实例化成一个window类型并且输出展示publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}}publicclassMyButton:Button{publicTypeMyType{get;set;}protectedoverridevoidOnClick(){base.OnClick();WindowwinActivator.CreateInstance(this.MyType)asWindow;win.Show();}}第三步在mainWindow的xmal里调用这个button并且将第一步的window类型赋值给button的type属性StackPanellocal:MyButtonContentshowMyType{x:Type local:MyWindow}Margin5/local:MyButton/StackPanel第四步这样就可以通过show按钮来弹出新的window需要注意的是x:type通常在拓展标记里出现所以需要用{}而且赋值不用号用空格5.x:Null的作用定义在xmal里的null作用比如我们在定义了一个style后如果后面的按钮不需要这个style那么就可以直接赋值nullWindow.ResourcesStylex:Key{x:Type Button}TargetType{x:Type Button}SetterPropertyHeightValue30/SetterSetterPropertyWidthValue30/Setter/Style/Window.ResourcesStackPanelButtonContentokStyle{x:Null}/ButtonButtonContentok/ButtonButtonContentok/Button/StackPanel6.xArray的作用定义声明一个数组用来给一些集合属性硬编码少量数据GridListBoxMargin5ListBox.ItemsSourcex:ArrayTypesys:Stringsys:Stringtim/sys:Stringsys:Stringtom/sys:String/x:Array/ListBox.ItemsSource/ListBox/Grid/Window7 x:Static的作用定义当在Xaml里使用静态成员时需要GridTextBlockText{x:Static local:MainWindow.str1}/TextBlock/GridpublicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}publicstaticstringstr1白日依山尽;}}8.总结以上就是常用的几种x:名称空间的用法
返回列表