码迷,mamicode.com
首页 > 其他好文 > 详细

WP8.1 Study4:WP8.1中控件集合应用

时间:2014-12-04 23:11:13      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   color   os   sp   

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是可以设置空间及页面的主题的属性。

 

WP8.1 Study4:WP8.1中控件集合应用

标签:des   style   blog   http   io   ar   color   os   sp   

原文地址:http://www.cnblogs.com/NEIL-X/p/4143907.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!