WPF编游戏系列 之一 布局设计

简介: 原文:WPF编游戏系列 之一 布局设计       本系列主要使用WPF和C#编写一个简单的小游戏(暂命名XMarket),意在通过该实例进一步学习和体验WPF,也欢迎广大同仁拍砖交流。言归正传,在编写一个软件前首先要思考软件的结构与布局,图片放在哪,按钮放在哪,都要先设计一下。
原文: WPF编游戏系列 之一 布局设计

       本系列主要使用WPF和C#编写一个简单的小游戏(暂命名XMarket),意在通过该实例进一步学习和体验WPF,也欢迎广大同仁拍砖交流。言归正传,在编写一个软件前首先要思考软件的结构与布局,图片放在哪,按钮放在哪,都要先设计一下。当然本实例也只是简单布局,先上个图也好讲解。

struct

从图中可以大概了解到本实例结构为上下布局:

1. 首先,是背景图片,不用多说就是为了好看,简单的一个Image就可以实现了。

<Image Source="image/backimage.jpg"></Image>

2. 在软件最上方的四个图标就是功能菜单,点击它们就会有相应的菜单显示在下面。这四个图标也是由Image构成,但是需要给它们附加一些事件,以达到想要的效果。后续文章中将介绍它们的功能。

       将图标放在Canvas中,通过Canvas.Left和Canvas.Top来调整图标位置,Width和Height调整图标大小,Tag标记一下图标内容,Cursor设为Hand当鼠标放到图标上时表现为可以点击状态。

<Canvas>
   <Image Source="image/home.png" Width="110" Height="110" Tag="My Home" 
Canvas.Left="30" Canvas.Top="20" Cursor="Hand"></Image> <Image Source="image/market.png" Width="125" Height="125" Tag="My Shop"
Canvas.Left="150" Canvas.Top="13" Cursor="Hand"></Image> <Image Source="image/new.png" Width="125" Height="125" Tag="Upgrade Shop"
Canvas.Left="275" Canvas.Top="13" Cursor="Hand"></Image> <Image Source="image/bank.png" Width="110" Height="110" Tag="Bank"
Canvas.Left="395" Canvas.Top="19" Cursor="Hand"></Image> </Canvas>

3. 由于WPF的Image好像没有HTML <img> 的Title功能,所以如果显示图片标签,初步想用一个可移动的Textblock代替,所以在上面的Canvas中再加上一个Textblock。外加一个Border可以增加一些效果,Visibility默认要设为不可见。

<Border Name="imageTitleBorder" CornerRadius="5" 
Background="AntiqueWhite" Visibility="Collapsed"> <TextBlock Name="imageTitle"></TextBlock> </Border>

 

4. 下方菜单处,还是以Grid来布局内容,Grid中的组件将由C#自动生成。将该Grid放入ScrollViewer中方便显示多行内容,同时ScrollViewer设为垂直滑动。

<Canvas Name="queryCanvas" Visibility="Collapsed">
    <Border Name="queryBorder" BorderThickness="7" CornerRadius="9" 
Width="920" Height="440" Canvas.Left="40" Canvas.Top="160"> <ScrollViewer Name="queryScrollViewer"
ScrollViewer.VerticalScrollBarVisibility="Visible"> <Grid Name="queryGrid"></Grid> </ScrollViewer > </Border> </Canvas>

5. 最后将代码整合起来如下,在Window中做了一些软件尺寸设置Height、Width、ResizeMode、WindowStartupLocation,以及软件的Icon。

<Window x:Class="XMarket.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="XMarket" Height="652" Width="1005" WindowStartupLocation="CenterScreen" 
ResizeMode="NoResize" Icon="/XMarket;component/image/home.png"> <Grid> <Image Source="image/backimage.jpg"></Image> <Canvas> <Image Source="image/home.png" Width="110" Height="110" Tag="My Home"
Canvas.Left="30" Canvas.Top="20" Cursor="Hand"></Image> <Image Source="image/market.png" Width="125" Height="125" Tag="My Shop"
Canvas.Left="150" Canvas.Top="13" Cursor="Hand"></Image> <Image Source="image/new.png" Width="125" Height="125" Tag="Upgrade Shop"
Canvas.Left="275" Canvas.Top="13" Cursor="Hand"></Image> <Image Source="image/bank.png" Width="110" Height="110" Tag="Bank"
Canvas.Left="395" Canvas.Top="19" Cursor="Hand"></Image> <Border Name="imageTitleBorder" CornerRadius="5"
Background="AntiqueWhite" Visibility="Collapsed"> <TextBlock Name="imageTitle"></TextBlock> </Border> </Canvas> <Canvas Name="queryCanvas" Visibility="Collapsed"> <Border Name="queryBorder" BorderThickness="7" CornerRadius="9"
Width="920" Height="440" Canvas.Left="40" Canvas.Top="160"> <ScrollViewer Name="queryScrollViewer"
ScrollViewer.VerticalScrollBarVisibility="Visible"> <Grid Name="queryGrid"></Grid> </ScrollViewer > </Border> </Canvas> </Grid> </Window>

待续… …

目录
相关文章
|
5月前
|
C# UED 开发者
WPF与性能优化:掌握这些核心技巧,让你的应用从卡顿到丝滑,彻底告别延迟,实现响应速度质的飞跃——从布局到动画全面剖析与实例演示
【8月更文挑战第31天】本文通过对比优化前后的方法,详细探讨了提升WPF应用响应速度的策略。文章首先分析了常见的性能瓶颈,如复杂的XAML布局、耗时的事件处理、不当的数据绑定及繁重的动画效果。接着,通过具体示例展示了如何简化XAML结构、使用后台线程处理事件、调整数据绑定设置以及利用DirectX优化动画,从而有效提升应用性能。通过这些优化措施,WPF应用将更加流畅,用户体验也将得到显著改善。
355 1
|
5月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
250 0
|
5月前
|
开发者 C# Windows
WPF布局大揭秘:掌握布局技巧,轻松创建响应式用户界面,让你的应用程序更上一层楼!
【8月更文挑战第31天】在现代软件开发中,响应式用户界面至关重要。WPF(Windows Presentation Foundation)作为.NET框架的一部分,提供了丰富的布局控件和机制,便于创建可自动调整的UI。本文介绍WPF布局的基础概念与实现方法,包括`StackPanel`、`DockPanel`、`Grid`等控件的使用,并通过示例代码展示如何构建响应式布局。了解这些技巧有助于开发者优化用户体验,适应不同设备和屏幕尺寸。
143 0
WPF-布局样式练习-Day02-聊天气泡
WPF-布局样式练习-Day02-聊天气泡
275 1
|
8月前
|
前端开发 C# 索引
浅谈WPF之UI布局
一个成功的软件,离不开人性化的UI设计,如何抓住用户第一视觉,让用户产生依赖感,合适优雅的布局必不可少。本文以一些简单的小例子,简述WPF中布局 面板 控件的使用,仅供学习分享使用,如有不足之处,还请指正。
111 1
|
前端开发 C# 容器
WPF技术之控件布局
WPF提供了多种布局控件和技术,可以帮助开发人员轻松创建灵活的用户界面。
183 0
WPF技术之控件布局
WPF-布局样式练习-Day01
WPF-布局样式练习-Day01
139 0
|
C# 前端开发
WPF编游戏系列 之二 图标效果
原文:WPF编游戏系列 之二 图标效果        本篇将要实现图标的两个效果:1. 显示图标标签,2. 图标模糊效果。在上一篇中提到Image没有HTML 的Title属性(在MSDN中也没找到类似的属性),所以本篇将自行制作一个标签,它的功能是当鼠标移动到图标上方时会显示该图标的Tag说明,并且该图标模糊显示,如下图对比所示。
778 0
|
C# C++
WPF编游戏系列 之四 用户控件
原文:WPF编游戏系列 之四 用户控件        在上一篇《WPF编游戏系列 之三 物品清单》中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2.2中使用的C#代码过多,其实我在写这些代码时也有同感,的确很繁琐也不好维护。
619 0