zoukankan      html  css  js  c++  java
  • 无废话WPF系列4: x名称空间

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    这个命名空间存放的就是XAML和XAML编译器沟通的东西,比如编译时与那个C#代码合并等

    一、 在XAML中出现的方式有三种

    1.标签扩展: x:Array, x:Null, x:Static, x:Type

    2. XAML指令元素: x:Code, x:XData

    3. Attribute: x:Class, x:ClassModifier, x:FieldModifier, x:Key, x:Name, x: Shared, X:Subclass, x:TypeArguments, x:Uid.

    二、详解

    x:Class:告诉XAML编译器将XAML标签的编译结果与后台制定的类合并,这个类必须使用partial关键字。

    x:ClassModifier:告诉生成的类的访问级别,标签必须具有x:Class Attribute.

    x:Name: XAML标签对应着一个对象。告诉XAML编译器为这个标签生成对应实例外还要为这个实例声明一个引用变量,变量名是x:Name的值,把

                 XAML标签对应对象的Name属性也设为x:Name的值,并把这个值注册到UI树上,方便查找。

    x:FieldModifier: 是用来改变引用变量访问级别的,很显然,需要和x:Name同时使用。

    x:Key: 把东西存放到资源字典Resource Dictionary里的Key,检索时用这个Key

    x:Shared: 是否检索对象时使用同一个还是副本,比如前所资源字典里的内容。

    x:Null: 清除一些设置,比如全局style设置的Button样式,某个Button不想用,可以使用Style=”{x:Null}”.

    x:Array:

    <Window x:Class="DeepXAML.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:DeepXAML"
            xmlns:sys="clr-namespace:System;assembly=mscorlib"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <ListBox Margin="5">
                <ListBox.ItemsSource>
                    <x:Array Type="sys:String">
                        <sys:String>Jack</sys:String>
                        <sys:String>Justin</sys:String>
                        <sys:String>David</sys:String>
                    </x:Array>
                </ListBox.ItemsSource>
            </ListBox>
        </Grid>
    </Window>
    image

    x:Static: 在XAML中使用数据类型的静态成员。

     public partial class MainWindow : Window
    {
        public static string Description = "Hello World";
        public MainWindow()
        {
            InitializeComponent();
        }        
    }
    <Window x:Class="DeepXAML.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:DeepXAML"       
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <StackPanel>
                <TextBlock FontSize="20"  Text="{x:Static local:MainWindow.Description}"  ></TextBlock>
            </StackPanel>
        </Grid>
    </Window>

    image

    扫码关注公众号,了解更多管理,见识,育儿等内容

    作者: 王德水
    出处:http://www.cnblogs.com/cnblogsfans
    版权:本文版权归作者所有,转载需经作者同意。

  • 相关阅读:
    Flasback数据库(闪回数据库)
    Oracle回收站
    PL/SQL中如何执行DDL、SCL?
    oracle中的隐式提交(auto commit)
    raise_application_error用法
    sqlplus中"-S"和"-L"用法
    愿随君,走天涯
    你的过去,我不曾参与;你的未来,与你紧相依
    Oracle中SAVEPOINT和ROLLBACK用法
    Linux基础命令-Nginx-正则表达式( grep sed awk )-Shell Script--etc
  • 原文地址:https://www.cnblogs.com/cnblogsfans/p/1958578.html
Copyright © 2011-2022 走看看