- WPF 教程
- WPF - 首頁
- WPF - 概述
- WPF - 環境設定
- WPF - Hello World
- WPF - XAML 概述
- WPF - 元素樹
- WPF - 依賴屬性
- WPF - 路由事件
- WPF - 控制元件
- WPF - 佈局
- WPF - 佈局巢狀
- WPF - 輸入
- WPF - 命令列
- WPF - 資料繫結
- WPF - 資源
- WPF - 模板
- WPF - 樣式
- WPF - 觸發器
- WPF - 除錯
- WPF - 自定義控制元件
- WPF - 異常處理
- WPF - 本地化
- WPF - 互動
- WPF - 2D 圖形
- WPF - 3D 圖形
- WPF - 多媒體
- WPF 有用資源
- WPF - 快速指南
- WPF - 有用資源
- WPF - 討論
WPF - 第三方控制元件
第三方控制元件是由個人或公司使用 WPF 使用者控制元件或自定義控制元件建立的,而非由微軟建立的。Telerik 和 DevExpress 是建立第三方控制元件最流行的公司。
在本章中,我們將使用 Telerik 控制元件。因此,讓我們按照以下步驟開始。
訪問連結 Telerik,其中包含 Telerik WPF 控制元件,並下載 UI for WPF。
下載完成後,將檔案安裝到您的計算機上。
安裝完成後,開啟 Visual Studio 並建立一個名為 WPF3rdPartyControls 的新 WPF 專案。
在工具箱中,您將看到 Telerik UI 控制元件。此外,您還會注意到,在解決方案資源管理器中,安裝後也會新增所有必需的 dll 檔案。
讓我們展開工具箱中的 Telerik UI for WPF – input 2015 Q2。您將看到許多內建控制元件。
現在將 RadCalculator 從工具箱拖到設計視窗。
檢視您的 XAML 視窗,其中已新增 RadCalculator 標籤。
<Window x:Class = "WPF3rdPartyControls.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local = "clr-namespace:WPF3rdPartyControls"
xmlns:telerik = "http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<telerik:RadCalculator HorizontalAlignment = "Left" Margin = "174,25,0,0"
VerticalAlignment = "Top" />
</Grid>
</Window>
讓我們編譯並執行上述程式碼。您將在視窗上看到一個功能齊全的計算器,只需一行程式碼。
這就是第三方控制元件的優勢所在。但它不是免費的,如果您想在應用程式中使用第三方控制元件,則需要購買許可證。
讓我們看看另一個 Telerik 控制元件。建立一個名為 WPF3rdPartyControls 的新 WPF 專案。從工具箱中拖動 RadDateTimePicker 控制元件。XAML 程式碼如下所示:
<Window x:Class = "RadDateTimePickerDemo.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik = "http://schemas.telerik.com/2008/xaml/presentation"
Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<telerik:RadDateTimePicker VerticalAlignment = "Top"
Name = "dateTimePicker" />
</Grid>
</Window>
這是實現了選擇更改事件的 C# 程式碼:
using System;
using System.Windows;
using System.Windows.Controls;
namespace RadDateTimePickerDemo {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
dateTimePicker.SelectionChanged += dateTimePicker_SelectionChanged;
}
void dateTimePicker_SelectionChanged( object sender, SelectionChangedEventArgs e ) {
DateTime? dt = dateTimePicker.SelectedValue;
DateTime? date = dateTimePicker.SelectedDate;
TimeSpan? time = dateTimePicker.SelectedTime;
MessageBox.Show( "Selected date/time: " + dt.ToString() );
}
}
}
編譯並執行上述程式碼後,將生成以下視窗。
選擇任何時間和日期,它將顯示在訊息框中。
示例
這是一個 RichTextBox 的示例。以下 XAML 程式碼建立三個切換按鈕和一個 RichTextBox。
<Window x:Class = "RichTextBoxDemo.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik = "http://schemas.telerik.com/2008/xaml/presentation"
Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<StackPanel>
<StackPanel Orientation = "Horizontal">
<ToggleButton Content = "B" x:Name = "BoldButton" Click = "BoldButton_Click" />
<ToggleButton Content = "I" x:Name = "ItalicButton"
Click = "ItalicButton_Click" />
<ToggleButton Content = "U"x:Name = "UnderlineButton"
Click = "UnderlineButton_Click" />
</StackPanel>
<telerik:RadRichTextBox Height = "250" Width = "400" Name = "richTextBox"/>
</StackPanel>
</Grid>
</Window>
這是按鈕單擊事件的 C# 實現:
using System.Windows;
namespace RichTextBoxDemo {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void BoldButton_Click( object sender, RoutedEventArgs e ) {
richTextBox.ToggleBold();
}
private void ItalicButton_Click( object sender, RoutedEventArgs e ) {
richTextBox.ToggleItalic();
}
private void UnderlineButton_Click( object sender, RoutedEventArgs e ) {
richTextBox.ToggleUnderline();
}
}
}
編譯並執行上述程式碼後,將生成以下視窗。藉助這三個按鈕,您可以設定在 RichTextBox 中輸入文字的格式(粗體、斜體、下劃線)。
我們建議您嘗試使用工具箱中提供的其他控制元件並進行實驗。