WPF【11_3】WPF实战-重构与美化(可复用的UI组件)

11-7 【UI】美化主页面

04:40

既然要使用到图片,肯定要把图片设为静态资源保存到项目中。图片复制到VS项目中后,右击图片 - Properties,找到 Build Action: Resource ,这个图片就可以被WPF程序打包了。

UI重新布局:

<Grid>

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition />

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="240"/>

<ColumnDefinition Width="280"/>

<ColumnDefinition />

</Grid.ColumnDefinitions>

<!--header-->

<Border Grid.ColumnSpan="3" Background="#7f3089">

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">

<Image Height="90" Margin="5" Source="/Images/logo.jpg"/>

<TextBlock Text="WPF客户管理系统" FontSize="40" VerticalAlignment="Center" Foreground="#ffffff"/>

</StackPanel>

</Border>

<StackPanel Grid.Row="1" Grid.Column="0">

<Button Content="添加客户"/>

<ListView />

</StackPanel>

<StackPanel Grid.Row="1" Grid.Column="1">

<TextBlock Text="姓名" Margin="10 10 10 0"/>

<TextBox Margin="10" />

<TextBlock Text="身份证" Margin="10 10 10 0"/>

<TextBox Margin="10" />

<TextBlock Text="地址" Margin="10 10 10 0"/>

<TextBox Margin="10" />

<Button Content="保存" Margin="10 10 10 30" VerticalAlignment="Bottom" HorizontalAlignment="Left" />

</StackPanel>

<StackPanel Grid.Row="1" Grid.Column="2">

<ListView />

<TextBlock Text="添加新预约" />

<DatePicker Margin="10" />

<Button Content="预约" />

</StackPanel>

</Grid>

11-8 【UI】组件化布局

如何把上节的 <!--header--> 提取出来,通过 UserControl 封装为可复用的UI组件。

在文件夹""右击 - Add - New Item ,左侧选择 WPF - User Control (WPF) ,命名为:HeaderControl

--\Controls\HeaderControl.xaml

<UserControl x:Class="WPF_CMS.Controls.HeaderControl"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:local="clr-namespace:WPF_CMS.Controls"

mc:Ignorable="d"

d:DesignHeight="450" d:DesignWidth="800">

<Border Background="#7f3089">

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">

<Image Height="90" Margin="5" Source="/Images/logo.jpg"/>

<TextBlock Text="WPF客户管理系统" FontSize="40" VerticalAlignment="Center" Foreground="#ffffff"/>

</StackPanel>

</Border>

</UserControl>

--\WPF_CMS\MainWindow.xaml

<Window x:Class="WPF_CMS.MainWindow"

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:local="clr-namespace:WPF_CMS"

xmlns:controls="clr-namespace:WPF_CMS.Controls"

mc:Ignorable="d"

Title="MainWindow" Height="450" Width="800">

<Grid>

............

<!--header-->

<controls:HeaderControl Grid.ColumnSpan="3"/>

............

</Grid>

</Window>

修改后,未编译时代码显示依然报错,重新构建(编译)一下代码就可以了。

相关推荐
老蒋新思维19 小时前
创客匠人峰会复盘:AI 时代知识变现,从流量思维到共识驱动的系统重构
大数据·人工智能·tcp/ip·重构·创始人ip·创客匠人·知识变现
尤老师FPGA1 天前
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第三十九讲)
ui
Aevget1 天前
界面组件Kendo UI for React 2025 Q3亮点 - AI功能全面提升
人工智能·react.js·ui·界面控件·kendo ui·ui开发
Macbethad1 天前
使用WPF编写一个工控软件设置界面
wpf
老蒋新思维1 天前
创客匠人 2025 全球创始人 IP+AI 万人高峰论坛:AI 赋能下知识变现与 IP 变现的实践沉淀与行业启示
大数据·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
测试界茜茜1 天前
独立搭建UI自动化测试框架分享
自动化测试·软件测试·功能测试·程序人生·ui·职场和发展
wuli_滔滔1 天前
【探索实战】深入浅出:使用Kurator Fleet实现跨云集群的统一应用分发
架构·wpf·kurator·fleet
zhaodiandiandian1 天前
I浪潮下的就业重构:挑战、机遇与转型
人工智能·重构
Android技术之家2 天前
安卓对外发布工程源码:如何实现仅暴露 UI 层
android·ui
松☆2 天前
Flutter 与 OpenHarmony 深度集成:自定义 MethodChannel 插件开发全指南
flutter·wpf