2011-01-01 33 views
38

tôi nhìn thấy một báo cáo rất giốngx: ý nghĩa trong XAML

<TextBox x:Name="txtInput" />

hoặc như

<BooleanToVisibilityConverter x:Key="boolToVis" /> 

Tại sao x: là cần thiết và những gì nó mang lại cho tôi.

<DockPanel.Resources> 
    <c:MyData x:Key="myDataSource"/> 
</DockPanel.Resources> 

Và ở đây chúng tôi cũng có cám ơn c:

để được giúp đỡ

Trả lời

59

Nó là gì khác hơn là các phím tắt cho các không gian tên khác nhau cho XML. Bạn có thể chọn chúng theo ý muốn.Nếu bạn nhìn vào các dòng trên trong XAML của bạn, bạn sẽ tìm thấy những dòng:

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

Thay đổi 'x' thành 'wpf' ví dụ và bạn sẽ thấy rằng bạn cần phải thay đổi tất cả các 'x:' tiền tố trong mã của bạn thành 'wpf:' để biên dịch.

Mã tham chiếu tiền tố 'c:' của riêng bạn. Giả sử bạn có một thư viện lớp mà biên dịch để MyLib.dll. Thư viện này chứa một lớp có tên là MyData. Để có thể tham khảo lớp MyData, bạn cần một cái gì đó như:

xmlns:c="clr-namespace:MyClasses;assembly=MyLib" 

trong tiêu đề XAML của bạn.

Sau đó, bạn có thể tham chiếu lớp MyData trong bạn XAML với c:MyData. Nhưng bạn hoàn toàn miễn phí để thay đổi 'c' thành 'myfabulousclasses' hoặc bất kỳ điều gì khác bạn ưa thích.

Mục đích của việc này? Để phân biệt các lớp hoặc thành viên có cùng tên, nhưng thuộc về các dll khác nhau.

6

Nó là một phần của một namespace. Trong ví dụ của bạn, c: prefix được sử dụng để cho biết rằng thẻ MyData thuộc về không gian tên này. Bạn có thể xem following article trên MSDN, giải thích x: prefix trong XAML.

+2

Để rõ ràng: XAML dựa trên XML và tiền tố 'x:' là tiền tố cho Không gian tên XML được xác định trong tiêu đề. –

13

x: Tiền tố

Trong ví dụ phần tử gốc trước đó, tiền tố x: được sử dụng để lập bản đồ không gian tên XAML http://schemas.microsoft.com/winfx/2006/xaml, đó là không gian tên XAML chuyên dụng có hỗ trợ cấu trúc ngôn ngữ XAML. Tiền tố x: được sử dụng để ánh xạ không gian tên XAML này trong các khuôn mẫu cho các dự án. Không gian tên XAML cho ngôn ngữ XAML chứa một số cấu trúc lập trình mà bạn sẽ sử dụng rất thường xuyên trong XAML của bạn. Sau đây là danh sách các cấu trúc lập trình tiền tố x: phổ biến nhất mà bạn sẽ sử dụng:

x: Khoá: Đặt khóa duy nhất cho mỗi tài nguyên trong ResourceDictionary (hoặc các khái niệm từ điển tương tự trong các khung công tác khác). x: Khóa có thể chiếm 90% của x: sử dụng mà bạn sẽ thấy trong đánh dấu của một ứng dụng WPF điển hình.

x: Lớp: Chỉ định không gian tên CLR và tên lớp cho lớp cung cấp mã-đằng sau cho trang XAML. Bạn phải có một lớp như vậy để hỗ trợ code-behind cho mỗi mô hình lập trình WPF, và do đó bạn hầu như luôn thấy x: ánh xạ, ngay cả khi không có tài nguyên.

x: Tên: Chỉ định tên đối tượng thời gian chạy cho cá thể tồn tại trong mã thời gian chạy sau khi phần tử đối tượng được xử lý. Nói chung, bạn sẽ thường xuyên sử dụng một thuộc tính tương đương được định nghĩa WPF cho x: Name. Các thuộc tính này ánh xạ đặc biệt tới một thuộc tính sao lưu CLR và do đó thuận tiện hơn cho lập trình ứng dụng, nơi bạn thường xuyên sử dụng mã thời gian chạy để tìm các phần tử được đặt tên từ XAML khởi tạo. Thuộc tính phổ biến nhất là FrameworkElement.Name. Bạn vẫn có thể sử dụng x: Tên khi thuộc tính Tên khuôn khổ cấp WPF tương đương không được hỗ trợ trong một loại cụ thể. Điều này xảy ra trong một số tình huống hoạt hình nhất định.

x: Tĩnh: Bật tham chiếu trả về giá trị tĩnh không phải là thuộc tính tương thích XAML.

x: Loại: Xây dựng tham chiếu Kiểu dựa trên tên loại. Điều này được sử dụng để chỉ định các thuộc tính có Kiểu, chẳng hạn như Style.TargetType, mặc dù thường xuyên thuộc tính có chuyển đổi chuỗi thành kiểu gốc theo cách mà việc sử dụng tiện ích đánh dấu x: Type là tùy chọn.

http://msdn.microsoft.com/en-us/library/ms752059.aspx http://msdn.microsoft.com/en-us/library/ms753327.aspx

Các vấn đề liên quan