WPF写一个简单的两列布局

97 阅读2分钟

正在用WPF写用来构建一个小型的桌面应用, 针对其中的一段布局代码做过简单记录,以便后期与CSS布局进行比较。

可能有些同学对wpf比较陌生,先说一下啥是wpf,WPF是Windows Presentation Foundation的缩写,它是微软推出的基于Windows的用户界面框架,属于.NET Framework 3.0的一部分。它主要用于构建具有丰富交互性的桌面应用程序。WPF具有丰富的图形和动画效果,能够为用户界面、2D/3D 图形、文档和媒体提供统一的描述和操作方法。它基于DirectX 9/10技术,不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面。

WPF优势:

  1. 学习成本低:WPF是一种基于.NET框架的技术,如果你已经熟悉C#语言和.NET开发,学习WPF会相对容易。它提供了丰富的文档、教程和示例,帮助你快速入门。
  2. 开发效率高:WPF采用XAML(可扩展应用程序标记语言)作为界面设计语言,将界面和逻辑分离,使得设计师和开发者可以并行工作。XAML具有声明性的语法,可以快速创建复杂的用户界面,提高开发效率。
  3. 快速部署:WPF应用程序可以轻松部署到Windows操作系统上,不需要额外的运行时依赖。一旦安装了.NET Framework,用户可以直接运行WPF应用程序,无需安装其他组件。
  4. 兼容性优势:WPF提供了强大的图形渲染能力,支持硬件加速和高性能图形处理。它可以利用现代图形卡的优势,提供流畅的动画效果和复杂的图形呈现,使应用程序具有更好的用户体验。
  5. 跨平台支持:尽管WPF最初是为Windows开发的,但现在也有一些解决方案可以让WPF应用程序在其他平台上运行。例如,通过使用Mono框架,你可以将WPF应用程序移植到Linux和macOS等操作系统上。

技术点解释: 与auto的区别 当Width属性设置为Auto时,列的宽度将自动调整以适应其内容的大小。 当Width属性设置为时,列的宽度将根据可用空间的比例进行分配。 Auto和的区别在于,使用Auto时,列的宽度仅取决于其内容的大小;而使用时,列的宽度将根据可用空间的剩余部分进行分配。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Label Content="Name:" />
    <TextBox Text="John Doe" VerticalAlignment="Center" Grid.Column="1" />
    <Label Content="Address:" Grid.Row="1" />
    <TextBox Text="34 Some Street, 123 45 SomeTown, Some Country" 
          VerticalAlignment="Center" Height="70" Grid.Row="1" Grid.Column="1"/>
    <Label Content="Position:" Grid.Row="2" />
    <TextBox Text="Manager" Grid.Row="2" Grid.Column="1"/>
</Grid>

运行结果

image.png