
- Silverlight 教程
- Silverlight - 首頁
- Silverlight - 概述
- Silverlight - 環境設定
- Silverlight - 入門
- Silverlight - XAML 概述
- Silverlight - 專案型別
- Silverlight - 固定佈局
- Silverlight - 動態佈局
- 受約束與不受約束
- Silverlight - CSS
- Silverlight - 控制元件
- Silverlight - 按鈕
- Silverlight - 內容模型
- Silverlight - 列表框
- Silverlight - 模板
- Silverlight - 可視狀態
- Silverlight - 資料繫結
- Silverlight - 瀏覽器整合
- Silverlight - 瀏覽器外執行
- Silverlight - 應用程式和資源
- Silverlight - 檔案訪問
- Silverlight - 檢視模型
- Silverlight - 輸入處理
- Silverlight - 隔離儲存
- Silverlight - 文字
- Silverlight - 動畫
- Silverlight - 影片和音訊
- Silverlight - 列印
- Silverlight 有用資源
- Silverlight - 快速指南
- Silverlight - 有用資源
- Silverlight - 討論
Silverlight - 日曆 & 日期選擇器
日曆 & 日期選擇器 代表一個控制元件,允許使用者使用視覺化日曆顯示來選擇日期。它提供了一些使用滑鼠或鍵盤的基本導航功能。如你所知,Silverlight 不是 WPF 的嚴格子集。例如,WPF 沒有用於選擇日期的控制元件,而 Silverlight 提供了日曆控制元件和日期選擇器。
一些重要特性包括:
日曆控制元件相對較大,如果您想檢視整體情況,它非常有用。
日期選擇器的預設外觀更緊湊。
它的尺寸更像文字欄位,使其更適合包含許多欄位的表單。
日期選擇器展開為類似日曆的使用者介面。
日曆類的層次繼承如下:

以下是日曆類最常用的屬性。
序號 | 屬性 & 描述 |
---|---|
1 | BlackoutDates 獲取標記為不可選的日期集合。 |
2 | CalendarButtonStyle 獲取或設定與控制元件內部 CalendarButton 物件關聯的樣式。 |
3 | CalendarDayButtonStyle 獲取或設定與控制元件內部 CalendarDayButton 物件關聯的樣式。 |
4 | CalendarItemStyle 獲取或設定與控制元件內部 CalendarItem 物件關聯的樣式。 |
5 | DisplayDate 獲取或設定要顯示的日期。 |
6 | DisplayDateEnd 獲取或設定日曆中可用的日期範圍的最後一天。 |
7 | DisplayDateStart 獲取或設定日曆中可用的第一天。 |
8 | DisplayMode 獲取或設定一個值,該值指示日曆顯示月份、年份還是十年。 |
9 | FirstDayOfWeek 獲取或設定一週的開始日期。 |
10 | IsTodayHighlighted 獲取或設定一個值,該值指示是否突出顯示當前日期。 |
11 | SelectedDate 獲取或設定當前選定的日期。 |
12 | SelectedDates 獲取選定日期的集合。 |
13 | SelectionMode 獲取或設定一個值,該值指示允許哪種型別的選擇。 |
以下是日曆類常用的方法。
序號 | 方法 & 描述 |
---|---|
1 | OnApplyTemplate 應用新模板時構建日曆控制元件的視覺化樹。(重寫 FrameworkElement.OnApplyTemplate())。 |
2 | ToString 提供所選日期的文字表示。(重寫 Control.ToString())。 |
以下是日曆類常用的事件。
序號 | 事件 & 描述 |
---|---|
1 | DisplayDateChanged 當 DisplayDate 屬性更改時發生。 |
2 | DisplayModeChanged 當 DisplayMode 屬性更改時發生。 |
3 | SelectedDatesChanged 當 SelectedDates 屬性返回的集合更改時發生。 |
4 | SelectionModeChanged 當 SelectionMode 更改時發生。 |
日期選擇器類的層次繼承如下:

以下是日期選擇器的一些最常用的屬性。
序號 | 屬性 & 描述 |
---|---|
1 | CalendarIdentifier 獲取或設定要使用的日曆系統。 |
2 | CalendarIdentifierProperty 獲取 CalendarIdentifier 依賴屬性的識別符號。 |
3 | Date 獲取或設定當前在日期選擇器中設定的日期。 |
4 | DateProperty 獲取 Date 依賴屬性的識別符號。 |
5 | DayFormat 獲取或設定日值的顯示格式。 |
6 | DayFormatProperty 獲取 DayFormat 依賴屬性的識別符號。 |
7 | DayVisible 獲取或設定一個值,該值指示是否顯示日期選擇器。 |
8 | DayVisibleProperty 獲取 DayVisible 依賴屬性的識別符號。 |
9 | Header 獲取或設定控制元件標題的內容。 |
10 | HeaderProperty 標識 Header 依賴屬性。 |
11 | HeaderTemplate 獲取或設定用於顯示控制元件標題內容的 DataTemplate。 |
12 | HeaderTemplateProperty 標識 HeaderTemplate 依賴屬性。 |
13 | MaxYear 獲取或設定可用於選擇的最大公曆年份。 |
14 | MaxYearProperty 獲取 MaxYear 依賴屬性的識別符號。 |
15 | MinYear 獲取或設定可用於選擇的最小公曆年份。 |
16 | MinYearProperty 獲取 MinYear 依賴屬性的識別符號。 |
17 | MonthFormat 獲取或設定月份值的顯示格式。 |
18 | MonthFormatProperty 獲取 MonthFormat 依賴屬性的識別符號。 |
19 | MonthVisible 獲取或設定一個值,該值指示是否顯示月份選擇器。 |
20 | MonthVisibleProperty 獲取 MonthVisible 依賴屬性的識別符號。 |
21 | Orientation 獲取或設定一個值,該值指示日期、月份和年份選擇器是水平堆疊還是垂直堆疊。 |
22 | OrientationProperty 獲取 Orientation 依賴屬性的識別符號。 |
23 | YearFormat 獲取或設定年份值的顯示格式。 |
24 | YearFormatProperty 獲取 YearFormat 依賴屬性的識別符號。 |
25 | YearVisible 獲取或設定一個值,該值指示是否顯示年份選擇器。 |
26 | YearVisibleProperty 獲取 YearVisible 依賴屬性的識別符號。 |
以下是日期選擇器類的一些最常用的事件。
序號 | 事件 & 描述 |
---|---|
1 | DateChanged 當日期值更改時發生。 |
2 | DragEnter 當輸入系統報告一個以該元素為目標的基礎拖動事件時發生。(繼承自 UIElement) |
3 | DragLeave 當輸入系統報告一個以該元素為原點的基礎拖動事件時發生。(繼承自 UIElement) |
4 | DragOver 當輸入系統報告一個以該元素為潛在放置目標的基礎拖動事件時發生。(繼承自 UIElement) |
5 | DragStarting 當啟動拖動操作時發生。(繼承自 UIElement) |
6 | GotFocus 當 UIElement 獲取焦點時發生。(繼承自 UIElement) |
7 | Holding 當在此元素的命中測試區域上發生未處理的 Hold 互動時發生。(繼承自 UIElement) |
8 | IsEnabledChanged 當 IsEnabled 屬性更改時發生。(繼承自 Control) |
9 | KeyDown 當 UIElement 具有焦點時按下鍵盤鍵時發生。(繼承自 UIElement) |
10 | KeyUp 當 UIElement 具有焦點時釋放鍵盤鍵時發生。(繼承自 UIElement) |
11 | LostFocus 當 UIElement 失去焦點時發生。(繼承自 UIElement) |
以下是日期選擇器類最常用的方法。
序號 | 方法 & 描述 |
---|---|
1 | ClearValue 清除依賴屬性的區域性值。(繼承自 DependencyObject) |
2 | FindName 檢索具有指定識別符號名稱的物件。(繼承自 FrameworkElement) |
3 | OnApplyTemplate 每當應用程式程式碼或內部程序(例如重建佈局過程)呼叫 ApplyTemplate 時呼叫。簡單來說,這意味著該方法在 UI 元素在應用程式中顯示之前被呼叫。重寫此方法以影響類的預設後模板邏輯。(繼承自 FrameworkElement) |
4 | OnDragEnter 在 DragEnter 事件發生之前呼叫。(繼承自 Control) |
5 | OnDragLeave 在 DragLeave 事件發生之前呼叫。(繼承自 Control) |
6 | OnDragOver 在 DragOver 事件發生之前呼叫。(繼承自 Control) |
7 | OnDrop 在 Drop 事件發生之前呼叫。(繼承自 Control) |
8 | OnGotFocus 在 GotFocus 事件發生之前呼叫。(繼承自 Control) |
9 | OnKeyDown 在 KeyDown 事件發生之前呼叫。(繼承自 Control) |
10 | OnKeyUp 在 KeyUp 事件發生之前呼叫。(繼承自 Control) |
11 | OnLostFocus 在 LostFocus 事件發生之前呼叫。(繼承自 Control) |
12 | SetBinding 使用提供的繫結物件將繫結附加到 FrameworkElement。(繼承自 FrameworkElement) |
讓我們來看一個簡單的例子,其中包含日曆和日期選擇器控制元件。
<UserControl 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:sdk = "http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class = "DateControls.MainPage" mc:Ignorable = "d" d:DesignHeight = "300" d:DesignWidth = "400"> <Grid x:Name = "LayoutRoot" Background = "White"> <sdk:Calendar HorizontalAlignment = "Left" Height = "169" Margin = "0,45,0,0" VerticalAlignment = "Top" Width = "230"/> <sdk:DatePicker HorizontalAlignment = "Left" Height = "23" Margin = "216,29,0,0" VerticalAlignment = "Top" Width = "120"/> </Grid> </UserControl>
編譯並執行上述程式碼後,您將看到以下輸出。
