1、AutoSuggestBox的应用
在xaml里代码可如下:
<AutoSuggestBox Name="autobox" Header="suggestions" GotFocus="autobox_GotFocus" TextChanged="autobox_TextChanged"> <AutoSuggestBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding}"/> </DataTemplate> </AutoSuggestBox.ItemTemplate> </AutoSuggestBox>
在C#代码添加类似代码,注意要用 Gotfocus事件和TextChaged事件(用来筛选)
ObservableCollection<string> items = new ObservableCollection<string>() { "w1", "w2", "w3", "msmdms","我的","你要" }; private void autobox_GotFocus(object sender, RoutedEventArgs e) { autobox.ItemsSource=items;//数据源items } private void autobox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) { string change = sender.Text; autobox.ItemsSource = items.Where(s =>s.Contains(change));//筛选s, 如同数据库操作 }
2、MessageDialog, ContentDialog的应用
(1)WP8.1中的messagebox变成了MessageDiaglog,用法是用C#代码调用,简单的调用程序如下:
private async void messageDialogButton_Click(object sender, RoutedEventArgs e) { MessageDialog messageDialog = new MessageDialog("MessageBox --> MessageDialog", "MessageDialog"); await messageDialog.ShowAsync(); }
(2)ContentDialog 则可以设置为部分或者全屏,或者直接在项目里新建一个 ContentDialog,其C#代码如下:
private async void Button_Click_2(object sender, RoutedEventArgs e) { ContentDialog dialog=new ContentDialog(){ Title="这是一个项目", Content="密匙", PrimaryButtonText="um1", SecondaryButtonText="um2" }; dialog.FullSizeDesired = true;//设置全屏 ContentDialogResult result=await dialog.ShowAsync(); if (result == ContentDialogResult.Primary) { show.Content = "nonshow"; } else if (result==ContentDialogResult.Secondary) { show.Content = "showagain"; } }
3、Flyout应用
下面用Button 嵌入一个flyout,下面xaml代码如下:
<Button Name="show" Content="show"> <Button.Flyout> <Flyout> <StackPanel> <TextBlock Text="我的项目"/> <Button Content="你好" Click="Button_Click_2"/> </StackPanel> </Flyout> </Button.Flyout> </Button>
还可以内嵌menuflyout,xaml代码如下:
<Button Name="show" Content="show"> <Button.Flyout> <MenuFlyout> <MenuFlyoutItem Text="123"/> <MenuFlyoutItem Text="456" Click="showBt_Click"/> </MenuFlyout> </Button.Flyout> </Button>
还可以用ListPickerFlyout 内嵌
<Button Name="show" Content="show"> <Button.Flyout> <ListPickerFlyout ItemsSource="{Binding items}"> <ListPickerFlyout.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding}"/> </DataTemplate> </ListPickerFlyout.ItemTemplate> </ListPickerFlyout> </Button.Flyout> </Button>
4、BottumAppBar
就是ApplicationBar ,xaml代码如下:
<Page.BottomAppBar> <CommandBar> <CommandBar.PrimaryCommands> <AppBarButton Icon="Accept" Label="Accept"/> <AppBarButton Icon="Cancel" Label="Cancel"/> </CommandBar.PrimaryCommands> <CommandBar.SecondaryCommands> <AppBarButton Icon="Help" Label="Help"/> </CommandBar.SecondaryCommands> </CommandBar> </Page.BottomAppBar>
5、StatusBar
可以在设计页面隐藏起来,也可以用C#来设计它。
private async void statusBt_Click(object sender, RoutedEventArgs e) { Windows.UI.ViewManagement.StatusBar statusbar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView(); await statusbar.HideAsync();//隐藏 }
6. Magic Number:10
在 8.0 时代,Magic Number 为 12,也就是间距最好都设为 12 的倍数,或者 6。
但到了 8.1,微软将 12 改成了 10。
以上内容大部分是参考http://www.cnblogs.com/xiaoshi3003/p/3739510.html 的。
----------------------------------------------------------------------------------------------------------------------------
总结
1、容器Panel Controls:
Canvas, StackPanel, Grid…
2、文本控件Text Handling Controls:
TextBlock、RichTextBlock、TextBox、PasswordBox、AutoSuggestBox...
3、按钮Buttun控件:
ToggleButton、CheckBox、RadioButton、AppBarButton、AppBarToggleButton...
4、进度显示控件:
ProgressRing、ProgressBar
5、一些好用的控件:
DatePicker / TimePicker、Flyout(包括MenuFlyout、List Picker Flyouts、Date/TimePicker Flyouts、Generic Picker Flyouts)、ContentDialog
6、系统的UI:
CommandBar、StatusBar、Soft Buttons(一些没有用)
注:RequestedTheme是可以设置空间及页面的主题的属性。