WPF中的x命名空间

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

x是用来解析XAML的库,用来将XAML进行编译生成CLR语言。

我们新建一个工程,默认如下:

1 <Window x:Class="WpfApplication4.MainWindow"
2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4         Title="MainWindow" Height="350" Width="525">
5     <Grid>
6         <TextBlock Name="textblock" Text="textblock"/>
7         
8     </Grid>
9 </Window>
 1 namespace WpfApplication4
 2 {
 3     /// <summary>
 4     /// MainWindow.xaml 的交互逻辑
 5     /// </summary>
 6     public partial class MainWindow : Window
 7     {
 8         public MainWindow()
 9         {
10             InitializeComponent();
11         }
12     }
13 }

x:class

1 x:Class="WpfApplication4.MainWindow"

这个属性简单的说就是用来连接cs文件和XAML文件的,试想编译器怎么知道我当前的XAML重的内容是对应到哪一个类呢?就是通过这个属性。

如果我将属性的值由MainWindow修改为MainWindow123,那么编译器会把这两个文件分别生成两个类:MainWindow和MainWindow123。

x:FieldModifier

1     <Grid>
2         <TextBlock Name="textblock" Text="textblock"/>
3         
4     </Grid>

这个时候textblock是私有的,但是有些时候,我们需要在外部获取到这个textblock。就需要使用到x:FieldModifier。

1     <Grid>
2         <TextBlock Name="textblock" Text="textblock" x:FieldModifier="public"/>
3         
4     </Grid>

这个时候textblock就是公有的了这一点我们可以在MainWindow.g.i.cs文件中看到

1         #line 6 "..\..\MainWindow.xaml"
2         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
3         public System.Windows.Controls.TextBlock textblock;
4         
5         #line default
6         #line hidden

而在默认状态下,这个类是private的。

同样与之有相同作用的还有x:ClassModifier,类必须有x:class这个是属性才会有x:ClassModifier,也就是说工程中的主窗口可以使用x:ClassModifier将其公开。

x:Name

Name大家是很熟悉的了,x:Name得作用和Name一样,都是用来定义一个类的实例名字,但是为什么有的使用Name有的却需要x:Name呢?

那是因为Name这个属性定义在FrameworkElement中,但是有些类不是从这个类继承出来的,所以没有Name属性,这样就需要x:Name。一般情况下二者是可以混用的。

x:Key

将textblock的内容转成一个资源

1     <Window.Resources>
2         <System:String x:Key="String1">textblock</System:String>
3     </Window.Resources>
4     <Grid>
5         <TextBlock x:Name="textblock" Text="{DynamicResource String1}"/>
6     </Grid>
x:Key就是这个资源的名字

同样的和还有x:share,如果这个值等于true那么就相当于一个这个资源全局只有一份,但是如果这个资源为false,那么在使用的时候,就相当于重新创建了一个副本。


 

转载于:https://www.cnblogs.com/HighFun/archive/2013/01/10/2855387.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF ,可以使用 DataGrid 控件显示和编辑数据。要使用 DataGrid 控件,通常需要完成以下步骤: 1. 引用命名空间 在 XAML 文件,需要引用 System.Windows.Controls 命名空间,以便使用 DataGrid 控件。可以使用以下语句引用命名空间: ```xaml xmlns:dg="clr-namespace:System.Windows.Controls;assembly=PresentationFramework" ``` 2. 创建 DataGrid 控件 创建 DataGrid 控件,设置其属性和事件处理程序。例如,可以使用以下代码创建 DataGrid 控件: ```xaml <dg:DataGrid x:Name="myDataGrid" ItemsSource="{Binding MyData}" AutoGenerateColumns="True" /> ``` 上面的代码创建了一个名为 myDataGrid 的 DataGrid 控件,并将其绑定到一个名为 MyData 的数据源。AutoGenerateColumns 属性设置为 true,表示 DataGrid 控件将自动生成列。 3. 设置列 如果要手动设置 DataGrid 控件的列,可以使用 DataGrid.Columns 属性。例如,以下代码设置 DataGrid 控件的两个列: ```xaml <dg:DataGrid x:Name="myDataGrid"> <dg:DataGrid.Columns> <dg:DataGridTextColumn Header="Name" Binding="{Binding Name}" /> <dg:DataGridTextColumn Header="Age" Binding="{Binding Age}" /> </dg:DataGrid.Columns> </dg:DataGrid> ``` 上面的代码创建了一个名为 myDataGrid 的 DataGrid 控件,并手动设置了两个列,分别是 Name 和 Age。 4. 绑定数据源 DataGrid 控件通常通过 ItemsSource 属性绑定到数据源。可以使用以下代码将 DataGrid 控件绑定到数据源: ```xaml <dg:DataGrid x:Name="myDataGrid" ItemsSource="{Binding MyData}" /> ``` 上面的代码将 myDataGrid 控件绑定到一个名为 MyData 的数据源。 以上就是在 WPF 使用 DataGrid 控件的基本步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值