当前位置:首页 > Windows程序 > 正文

【Win10】SplitView控件

2021-03-27 Windows程序

SplitView是Win10中的新控件。

用于呈现两部分视图。 一个视图是主要内容,另一个视图是用于导航。(也就是通常说的汉堡菜单。)

主要结构:

<SplitView> <SplitView.Content> <!--主要内容--> </SplitView.Content> <SplitView.Pane> <!--汉堡菜单--> </SplitView.Pane> </SplitView>

对应的实例如图所示:

在上图中,pane里有一个listview(此时的状态是已经点选择展开了的,才显示了"菜单X"等文字)。

注意几个属性:CompactPanelLength:       Pane折叠时候的长度

       OpenPaneLength:    Pane展开时候的长度

另外重要的一个就是DisplayMode属性:

1.Inline:     内联: 当Pane展开式,Content会直接往右移动,宽度变小

2.Overlay      覆盖:当Pane展开式, 直接覆盖在Content上面。

3.CompactInline    在pane折叠的时候显示,,显示的时候为内联

4.CompactOverlay    在panel折叠的时候隐藏,显示的时候为覆盖

我先画出左上角的汉堡菜单,使得点击能够展开/不展开

xaml:

<Button BorderThickness="0" Background="White" Click="Button_Click">   <Button.Content>     <TextBlock Text="&#xE700;" FontFamily="Segoe MDL2 Assets" FontSize="24"/>   </Button.Content>
</Button>

后台代码:

splitView.IsPaneOpen = !splitView.IsPaneOpen;

之后在这个汉堡菜单下面画出列表

<ListView x:Name="lv" Grid.Row="1" ItemsSource="{x:Bind pictures}">   <ListView.ItemTemplate>     <DataTemplate x:DataType="model:PictureModel">       <Grid>         <Grid.ColumnDefinitions>           <ColumnDefinition Width="Auto"/>           <ColumnDefinition/>         </Grid.ColumnDefinitions>         <Image Width="50" Height="50" Stretch="Uniform" VerticalAlignment="Center" Grid.Column="0">           <Image.Source>             <BitmapImage UriSource="{x:Bind Uri}"/>           </Image.Source>   </Image>   <TextBlock Text="{x:Bind Text}" Grid.Column="1" VerticalAlignment="Center" Margin="20,0,0,0"/>       </Grid>     </DataTemplate>   </ListView.ItemTemplate>
</ListView>

在写上面的时候,当时出现了个问题,提示:DataTemplate不支持直接内容。  烦恼我好久,后来也不知怎么的正常了。。
参照上一篇随笔,因为是x:Bind  使用了强类型病毒,这里也不需要绑定DataContext,并且要写明数据类型。

之后就是建立类 并且创建对象就可以了。

PictureModel类:

public class PictureModel
{
  public Uri Uri { get; set; }   public string Text { get; set; }   public string Details { get; set; } }

创建对象:

ObservableCollection<PictureModel> pictures = new ObservableCollection<PictureModel>(); pictures.Add(new PictureModel() { Text = "菜单1", Uri = new Uri(@"ms-appx:///Assets/images/1.png"), Details = "描述111111" }); pictures.Add(new PictureModel() { Text = "菜单2", Uri = new Uri(@"ms-appx:///Assets/images/2.png"), Details = "描述222222" }); pictures.Add(new PictureModel() { Text = "菜单3", Uri = new Uri(@"ms-appx:///Assets/images/3.png"), Details = "描述333333" });

【Win10】SplitView控件

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68639.html