WPF中如何设置自定义控件(四)

在上一节讲到过将自定义界面进行左右分割,左边作为登录的用户信息和菜单;右边作为详情展示界面。

这节准备在上一节的基础上对左侧部分进行细分,完善功能,左侧的内容准备做两部分填充:一是登录用户的信息,一是菜单。因此需要将左侧的<Grid>表格控件分割成两行,地一行方式用户信息;第二行放置菜单。

<Window x:Class="DataGrid.Window1"
        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:Icon ="http://metro.mahapps.com/winfx/xaml/iconpacks"
        xmlns:local="clr-namespace:DataGrid"
        mc:Ignorable="d"
        Title="Window1" Height="450" Width="800">
    <Window.Resources>
        <BooleanToVisibilityConverter x:Key="BoolToVis" />
    </Window.Resources>

    <Border CornerRadius="30" Background="#EFF2F7" MouseDown="Border_MouseDown" MouseLeftButtonDown="Border_MouseLeftButtonDown">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="200"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <!--Left Menu-->
            <Border Background="#623ED0" CornerRadius="0 50 0 30">
                <Grid Grid.Column="0">
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>

                <!--用户信息-->

                <Grid Grid.Row="0">
                </Grid>

                <!--菜单-->    
                <Grid Grid.Row="1" >
                </Grid>   

                </Grid>
            </Border>

            <!--Main Section-->
            <Border Grid.Column="1" Background="Aquamarine"  CornerRadius="5">
                <Grid Grid.Column="1" Margin="30 20 20 20">
                </Grid>
            </Border>
        </Grid>
    </Border>
</Window>
为了尽一步完善信息,我决定在用户信息中加载用户照片,显示用户名称和地址;在第二个<Grid>中添加菜单(暂且全用TextBlock代替)。由于左侧的大小是固定长度200,因此所有内容选择竖直排列。代码如下:

<Window x:Class="DataGrid.Window1"
        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:Icon ="http://metro.mahapps.com/winfx/xaml/iconpacks"
        xmlns:local="clr-namespace:DataGrid"
        mc:Ignorable="d"
        Title="Window1" Height="450" Width="800">
    <Window.Resources>
        <BooleanToVisibilityConverter x:Key="BoolToVis" />
    </Window.Resources>

    <Border CornerRadius="30" Background="#EFF2F7" MouseDown="Border_MouseDown" MouseLeftButtonDown="Border_MouseLeftButtonDown">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="200"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <!--Left Menu-->
            <Border Background="#623ED0" CornerRadius="0 50 0 30">
                <Grid Grid.Column="0">
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>

                <Grid Grid.Row="0">
                    <Border Background="#623ED0" Margin="0 0 0 60" Height="160" Width="80">
                        <StackPanel Orientation="Vertical">
                                <Ellipse Height="80" Width="80">
                                    <Ellipse.Fill>
                                        <ImageBrush ImageSource="/Images/p1.jpg"/>
                                    </Ellipse.Fill>
                                </Ellipse>
                                <TextBlock Foreground="White" Text="James" Height="40" ></TextBlock>
                                <TextBlock Foreground="White" Text="西部大道"></TextBlock>
                        </StackPanel>
                    </Border>
                </Grid>

                <!--菜单-->    
                <Grid Grid.Row="1" >
                    <StackPanel Orientation="Vertical">
                        <TextBlock Foreground="White"> 菜单1</TextBlock>
                        <TextBlock Foreground="White"> 菜单2</TextBlock>
                        <TextBlock Foreground="White"> 菜单3</TextBlock>
                        <TextBlock Foreground="White"> 菜单4</TextBlock>
                        <TextBlock Foreground="White"> 菜单5</TextBlock>
                    </StackPanel>
                </Grid>   

                </Grid>
            </Border>

            <!--Main Section-->
            <Border Grid.Column="1" Background="Aquamarine"  CornerRadius="5">
                <Grid Grid.Column="1" Margin="30 20 20 20">
                </Grid>
            </Border>
        </Grid>
    </Border>
</Window>
效果图:

相关推荐

  1. Wpf-定义状态

    2024-03-11 13:06:01       19 阅读
  2. Wpf-定义波纹Button

    2024-03-11 13:06:01       21 阅读
  3. WPF定义模版

    2024-03-11 13:06:01       12 阅读
  4. QT如何使用定义

    2024-03-11 13:06:01       44 阅读
  5. wpf定义添加滚动条

    2024-03-11 13:06:01       34 阅读
  6. WPF定义,聚合器模式传递消息

    2024-03-11 13:06:01       40 阅读
  7. C#--WPF定义模板示例

    2024-03-11 13:06:01       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 13:06:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 13:06:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 13:06:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 13:06:01       20 阅读

热门阅读

  1. Linux开发的常用桌面界面有哪些?以及使用推荐

    2024-03-11 13:06:01       20 阅读
  2. linux安全配置规范

    2024-03-11 13:06:01       21 阅读
  3. 【c++11线程库的使用】

    2024-03-11 13:06:01       16 阅读
  4. 数据结构-双链表

    2024-03-11 13:06:01       21 阅读
  5. 如何在vue中使用sort对数组进行排序

    2024-03-11 13:06:01       20 阅读
  6. TensorFlow是啥

    2024-03-11 13:06:01       20 阅读
  7. 2024 年 AI 辅助研发趋势

    2024-03-11 13:06:01       24 阅读