中國(guó)建設(shè)銀行巴黎分行網(wǎng)站武漢網(wǎng)站制作
ProgressBar進(jìn)度條
ProgressBar進(jìn)度條通常在我們執(zhí)行某個(gè)任務(wù)需要花費(fèi)大量時(shí)間時(shí)使用,這時(shí)可以采用進(jìn)度條顯示任務(wù)或線(xiàn)程的執(zhí)行進(jìn)度,以便給用戶(hù)良好的使用體驗(yàn)。
ProgressBar類(lèi)定義
public class ProgressBar : RangeBase
{public static readonly DependencyProperty IsIndeterminateProperty;public static readonly DependencyProperty OrientationProperty;public ProgressBar();public bool IsIndeterminate { get; set; }public Orientation Orientation { get; set; }public override void OnApplyTemplate();protected override AutomationPeer OnCreateAutomationPeer();protected override void OnMaximumChanged(double oldMaximum, double newMaximum);protected override void OnMinimumChanged(double oldMinimum, double newMinimum);protected override void OnValueChanged(double oldValue, double newValue);}
ProgressBar自身只有兩個(gè)屬性,分別是IsIndeterminate和Orientation 。
- IsIndeterminate屬性:如果為true,表示以動(dòng)畫(huà)從左到右滑動(dòng)的方式展示進(jìn)度效果。
- Orientation屬性:表示進(jìn)度條的方式,水平時(shí)從左至右增長(zhǎng),垂直時(shí)從下到上增長(zhǎng)。
ProgressBar案例
前端
<StackPanel VerticalAlignment="Center"><ProgressBar x:Name="_ProgressBar" IsIndeterminate="False" Value="50" Minimum="0" Maximum="100" Orientation="Horizontal" Height="10" Margin="15"/><TextBlock x:Name="_TextBlock" Text="50%" HorizontalAlignment="Center"/></StackPanel>
后端
public partial class MainWindow{public MainWindow(){InitializeComponent();Loaded += (s, e) =>{Task.Factory.StartNew(() =>{for (int i = 0; i <= 100; i++){Dispatcher.Invoke(() => {_TextBlock.Text = $"{i}%";_ProgressBar.Value = i;});Task.Delay(25).Wait();}});};}}
Calendar日歷控件
Calendar提供一個(gè)日歷界面,供用戶(hù)選擇日期,它繼承于Control基類(lèi)。
屬性成員
- DisplayDateStart:獲取或設(shè)置可在日歷中的第一個(gè)日期。
- CalendarItemStyle:獲取或設(shè)置CalendarItem的樣式
- CalendarDayButtonStyle:獲取或設(shè)置CalendarDayButton的樣式
- CalendarButtonStyle :獲取或設(shè)置CalendarButton的樣式
- BlackoutDates:獲取標(biāo)記為不可選擇的日期的集合。
- DisplayMode:獲取或設(shè)置一個(gè)值,該值指示是否日歷顯示月、 年或十年。
- DisplayDateEnd:獲取或設(shè)置可在日歷中的日期范圍內(nèi)的最后日期。
- IsTodayHighlighted:獲取或設(shè)置一個(gè)值,該值指示是否突出顯示當(dāng)前日期。默認(rèn)true。
- SelectedDate:獲取或設(shè)置當(dāng)前選定的日期。[重要]
- SelectedDates:獲取選定日期的集合。
- SelectionMode:獲取或設(shè)置一個(gè)值,指示允許包含什么樣的選擇。如果是多選的號(hào),就可以從SelectedDates屬性獲取所有已選的日期。
- DisplayDate:獲取或設(shè)置要顯示的日期。
- FirstDayOfWeek:獲取或設(shè)置在一天中被視為周的開(kāi)始。
事件成員
- SelectedDatesChanged:開(kāi)啟多選后,當(dāng)所選集合的元素?cái)?shù)量發(fā)生變化時(shí)引發(fā)。
- DisplayDateChanged:DisplayDate屬性被修改后引發(fā)。
- SelectionModeChanged:SelectionMode屬性(選擇模式)發(fā)生改變后引發(fā)。
- DisplayModeChanged:DisplayMode屬性(顯示模式)發(fā)生改變后引發(fā)。
Calendar示例
前端代碼
<StackPanel HorizontalAlignment="Center" Margin="30"><Calendar x:Name="_Calendar" HorizontalAlignment="Left" VerticalAlignment="Top"Margin="0,15" DisplayDateStart="2020/1/1 00:00:00"DisplayDateEnd="2030/1/1 00:00:00"SelectionMode="MultipleRange"/><Button Content="選擇" Click="Button_Click"/></StackPanel>
后端代碼
private void Button_Click(object sender, RoutedEventArgs e){var list = _Calendar.SelectedDates;var current = _Calendar.SelectedDate;MessageBox.Show($"當(dāng)前日期數(shù)量:{list.Count},當(dāng)前日期:{current}");}
DatePicker日期控件
DatePicker與Calender在某些屬性上很相似,只是為了方便顯示和操作,DatePicker將Calender進(jìn)行了封裝。
屬性成員
- BlackoutDates:獲取或設(shè)置為不可選擇的日期的標(biāo)記集合。不常用。
- DisplayDateStart:獲取或設(shè)置要顯示的第一個(gè)日期。
- DisplayDateEnd:獲取或設(shè)置要顯示的最后日期。
- DisplayDate:獲取或設(shè)置要顯示的日期。
- CalendarStyle:獲取或設(shè)置呈現(xiàn)日歷時(shí)所使用的樣式。
- IsTodayHighlighted:獲取或設(shè)置一個(gè)值,該值指示是否將突出顯示當(dāng)前日期。
- IsDropDownOpen:獲取或設(shè)置一個(gè)值,該值指示Calendar 下拉列表是打開(kāi)還是關(guān)閉。
- SelectedDateFormat:獲取或設(shè)置用于顯示所選的日期的格式。
- Text:獲取DatePicker顯示文本,或設(shè)置選定的日期
- FirstDayOfWeek:獲取或設(shè)置在一天中被視為周的開(kāi)始。
- SelectedDate:獲取或設(shè)置當(dāng)前選定的日期。
- HasEffectiveKeyboardFocus:獲取一個(gè)值,該值指示DatePicker 是否 具有焦點(diǎn)。
事件成員
- CalendarClosed:DatePicker下拉列表關(guān)閉時(shí)引發(fā)此事件
- CalendarOpened:DatePicker下拉列表打開(kāi)時(shí)引發(fā)此事件
- SelectedDateChanged:SelectedDate屬性發(fā)生改變時(shí)引發(fā)此事件
- DateValidationError:當(dāng)Text屬性不是日期形式的字符串時(shí)引發(fā)此事件
DatePicker示例
前端代碼
<StackPanel HorizontalAlignment="Center" Margin="30" VerticalAlignment="Center"><StackPanel Orientation="Horizontal" Margin="10"><TextBlock Text="開(kāi)始日期" VerticalAlignment="Center" Margin="10,0"/><DatePicker x:Name="_DatePickerStart" VerticalAlignment="Center" Width="120"/></StackPanel><StackPanel Orientation="Horizontal" Margin="10"><TextBlock Text="結(jié)束日期" VerticalAlignment="Center" Margin="10,0"/><DatePicker x:Name="_DatePickerEnd" VerticalAlignment="Center" Width="120"/></StackPanel><Button Content="查詢(xún)" Click="Button_Click" Margin="10,0"/></StackPanel>
后端代碼
private void Button_Click(object sender, RoutedEventArgs e){var selectedDate = $"查詢(xún)?nèi)掌?{_DatePickerStart.SelectedDate} {_DatePickerEnd.SelectedDate}\r\n";var text = $"文本值:{_DatePickerStart.Text} {_DatePickerEnd.Text}";MessageBox.Show($"{selectedDate} {text}");}