xaml

ComboBox đại diện cho một điều khiển lựa chọn kết hợp hộp văn bản không thể chỉnh sửa và hộp danh sách thả xuống cho phép người dùng chọn một mục từ danh sách. Nó hiển thị lựa chọn hiện tại hoặc trống nếu không có mục đã chọn. Sự kế thừa phân cấp của lớp ComboBox như sau:

XAML - ComboBox

Đặc tính

Dưới đây là các thuộc tính được sử dụng phổ biến nhất của ComboBox.

Phương pháp

Dưới đây là các phương pháp ComboBox được sử dụng phổ biến nhất.

S kin

Dưới đây là các sự kiện thường được sử dụng nhất của ComboBox.

Thí d

Ví dụ sau đây chứa hai hộp tổ hợp. Hộp kết hợp đầu tiên là một hộp đơn giản và hộp thứ hai có thể chỉnh sửa.

Đây là mã XAML trong đó hai hộp tổ hợp đã được tạo với một số thuộc tính.

<Window x:Class = "XAMLComboBox.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid>
      <ComboBox Height = "20" Width = "100" HorizontalAlignment = "Left" Margin = "116,77,0,212"> 
         <ComboBoxItem Content = "Item #1"/> 
         <ComboBoxItem Content = "Item #2"/> 
         <ComboBoxItem Content = "Item #3"/> 
      </ComboBox> 
		
      <ComboBox IsEditable = "True" Height = "20" Width = "100" 
         HorizontalAlignment = "Right" Margin = "0,77,180,212"> 
         <ComboBoxItem Content = "Item #1"/> 
         <ComboBoxItem Content = "Item #2"/> 
         <ComboBoxItem Content = "Item #3"/> 
      </ComboBox>
   </Grid>
   
</Window> 

Khi bạn biên dịch và thực thi đoạn mã trên, nó sẽ tạo ra kết quả sau:

XAML - ComboBox

Chúng tôi khuyên bạn nên thực thi mã ví dụ trên và thử nghiệm với một số thuộc tính và sự kiện khác.

XAML – ContextMenu


ContextMenu đại diện cho một menu bật lên cho phép điều khiển hiển thị một chức năng cụ thể cho ngữ cảnh của điều khiển. Nó xuất hiện bất cứ khi nào menu ngữ cảnh được yêu cầu thông qua giao diện người dùng từ bên trong phần tử này. Sự kế thừa phân cấp của lớp ContextMenu như sau:

XAML - ComboBox

Đặc tính

Dưới đây là các thuộc tính được sử dụng phổ biến nhất của ContextMenu.

Phương pháp

Dưới đây là các phương thức được sử dụng phổ biến nhất của ContextMenu.

S kin

Dưới đây là các sự kiện thường được sử dụng nhất của ContextMenu.

Thí d

Ví dụ sau chứa một hộp văn bản với ContextMenu thao tác văn bản bên trong hộp văn bản.

Đây là mã XAML trong đó TextBox, ContextMenu và MenuItems đã được tạo với một số thuộc tính và sự kiện.

<Window x:Class = "XAMLContextMenu.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid> 
      <TextBox Name = "textBox1" TextWrapping = "Wrap" Margin = "10" Grid.Row = "7"> 
         Hi, this is XAML dongthoigian.
			
         <TextBox.ContextMenu> 
            <ContextMenu> 
               <MenuItem Header = "_Bold" IsCheckable = "True" 
                  Checked = "Bold_Checked" Unchecked = "Bold_Unchecked" /> 
               <MenuItem Header = "_Italic" IsCheckable = "True" 
                  Checked = "Italic_Checked" Unchecked = "Italic_Unchecked" /> 
               <Separator /> 
               <MenuItem Header = "Increase Font Size" Click = "IncreaseFont_Click" /> 
               <MenuItem Header = "_Decrease Font Size" Click = "DecreaseFont_Click" />
            </ContextMenu> 
         </TextBox.ContextMenu> 
      </TextBox> 
      
   </Grid> 
</Window>

Đây là cách triển khai trong C # cho các sự kiện khác nhau.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data;

namespace XAMLContextMenu { 
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window { 
      public MainWindow() { 
         InitializeComponent(); 
      } 
      private void Bold_Checked(object sender, RoutedEventArgs e) { 
         textBox1.FontWeight = FontWeights.Bold;
      }
      private void Bold_Unchecked(object sender, RoutedEventArgs e) { 
         textBox1.FontWeight = FontWeights.Normal; 
      }
      private void Italic_Checked(object sender, RoutedEventArgs e) { 
         textBox1.FontStyle = FontStyles.Italic; 
      }
      private void Italic_Unchecked(object sender, RoutedEventArgs e) { 
         textBox1.FontStyle = FontStyles.Normal; 
      }
      private void IncreaseFont_Click(object sender, RoutedEventArgs e) { 
         if (textBox1.FontSize < 18) { 
            textBox1.FontSize += 2; 
         } 
      }
      private void DecreaseFont_Click(object sender, RoutedEventArgs e) { 
         if (textBox1.FontSize > 10) { 
            textBox1.FontSize -= 2; 
         } 
      } 
   } 
}

Khi bạn biên dịch và thực thi đoạn mã trên, nó sẽ tạo ra màn hình sau:

XAML - ComboBox

Chúng tôi khuyên bạn nên thực thi mã ví dụ trên và thử nghiệm với một số thuộc tính và sự kiện khác.

XAML – DataGrid

DataGrid đại diện cho một điều khiển hiển thị dữ liệu trong một lưới có thể tùy chỉnh. Nó cung cấp một cách linh hoạt để hiển thị tập hợp dữ liệu theo hàng và cột. Sự kế thừa phân cấp của lớp DataGrid như sau:

XAML - ComboBox

Đặc tính

Dưới đây là các thuộc tính thường được sử dụng của DataGrid

Phương pháp

Dưới đây là các phương thức thường được sử dụng của DataGrid.

S kin

Dưới đây là các sự kiện được sử dụng phổ biến nhất của DataGrid.

Thí d

Ví dụ sau đây cho thấy cách hiển thị dữ liệu trong DataGrid. Đây là mã XAML để tạo hai hộp kiểm với một số thuộc tính và sự kiện.

<Window x:Class = "DataGrid.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:core = "clr-namespace:System;assembly = mscorlib" 
   xmlns:local = "clr-namespace:DataGrid" 
   Title = "MainWindow" Height = "350" Width = "525"> 
	
   <Window.Resources> 
      <ObjectDataProvider x:Key = "myEnum" MethodName = "GetValues" 
         ObjectType = "{x:Type core:Enum}"> 
			
         <ObjectDataProvider.MethodParameters> 
            <x:TypeExtension Type = "local:Party" /> 
         </ObjectDataProvider.MethodParameters> 
		</ObjectDataProvider> 
   </Window.Resources> 
	
   <Grid> 
      <DataGrid Name = "dataGrid" AlternatingRowBackground = "LightBlue" 
         AlternationCount = "2" AutoGenerateColumns = "False">
			
         <DataGrid.Columns> 
            <DataGridTextColumn Header = "Name" Binding = "{Binding Name}" />
            <DataGridTextColumn Header = "Title" Binding = "{Binding Title}" >
            <DataGridCheckBoxColumn Header = "ReElected?" Binding = "{Binding WasReElected}"/> 
				
            <DataGridComboBoxColumn Header = "Party"
               SelectedItemBinding = "{Binding Affiliation}" 
               ItemsSource = "{Binding Source = {StaticResource myEnum}}" /> 
         </DataGrid.Columns> 
      </DataGrid>
   </Grid> 
	
</Window>

Đây là cách triển khai trong C # cho hai lớp khác nhau.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks;
 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes;

namespace DataGrid { 
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary>
	
   public partial class MainWindow : Window { 
      public MainWindow() { 
         InitializeComponent(); dataGrid.ItemsSource = Employee.GetEmployees(); 
      }
   } 
	public enum Party { 
      Indepentent, Federalist, DemocratRepublican, 
   } 
}

Đây là một triển khai lớp Nhân viên khác trong C #.

public class Employee : INotifyPropertyChanged { 
   private string name; public string Name { 
      get { return name; } 
      set { 
         name = value; RaiseProperChanged(); 
      } 
   }
	private string title; public string Title { 
      get { return title; } 
		set { 
         title = value; 
         RaiseProperChanged();
      } 
   }
	private bool wasReElected;
	public bool WasReElected { 
      get { return wasReElected; } 
      set { 
         wasReElected = value; RaiseProperChanged(); 
      } 
   }
	private Party affiliation; public Party Affiliation {
      get { return affiliation; }
		set { 
         affiliation = value; RaiseProperChanged(); 
      } 
   }
	public static ObservableCollection<Employee> GetEmployees() {
      var employees = new ObservableCollection<Employee>(); 
      employees.Add(new Employee() {
         Name = "Ali", Title = "Minister", WasReElected = true, 
         Affiliation = Party.Indepentent }); 
			
      employees.Add(new Employee() { 
         Name = "Ahmed", Title = "CM", WasReElected = false, 
         Affiliation = Party.Federalist }); 
			
      employees.Add(new Employee() { 
         Name = "Amjad", Title = "PM", WasReElected = true, 
         Affiliation = Party.DemocratRepublican });
			
      employees.Add(new Employee() { 
         Name = "Waqas", Title = "Minister", WasReElected = false, 
         Affiliation = Party.Indepentent }); 
			
      employees.Add(new Employee() { 
         Name = "Bilal", Title = "Minister", WasReElected = true, 
         Affiliation = Party.Federalist });
			
      employees.Add(new Employee() { 
         Name = "Waqar", Title = "Minister", WasReElected = false,
         Affiliation = Party.DemocratRepublican }); 
			
      return employees; 
   }
   public event PropertyChangedEventHandler PropertyChanged;
	
   private void RaiseProperChanged( [CallerMemberName] string caller = "") { 
      if (PropertyChanged != null) { 
         PropertyChanged(this, new PropertyChangedEventArgs(caller)); 
      } 
   } 
}

Khi bạn biên dịch và thực thi đoạn mã trên, nó sẽ tạo ra kết quả sau:

XAML - ComboBox

XAML – DatePicker (xem thêm)

Để lại một bình luận