作者darkk6 (Mr. Pan)
看板C_Sharp
标题[问题] WPF 一些排版上的问题
时间Sun Aug 7 18:16:06 2011
最近因为工作需要,第一次接触 C# 和 WPF
虽然之前有学过 Java 在转换 C# 上没甚麽问题
可是 WPF 的排版问题让我有点头痛...
目前的情况大致上是这样:
我接手别人写的专案,配置了一个 Canvas,目的是当需要的时候让
Canvas show 出来,并挡住原本视窗的 input,并在 Canvas 上显示
一些东西(如:button、Label...等)。
但是这部分可能需要用到 Code 来做这些元件的定位,不过稍微找了一下
实在是找不太到有详细说明的文件....
第一个遇到的问题是,打算在 Canvas 上显示一个 Label 和一个 Button
两者都必须水平置中,垂直位置 Label 在上 Button 在下,大概是这样:
┌──────────────────────────┐
│ │
│ ╭──────────────────────╮ │
│ │ │ │
│ │ Label │ │
│ │ │ │
│ ╰──────────────────────╯ │
│ │
│ ╭────╮ │
│ │ │ │
│ │button │ │
│ ╰────╯ │
│ │
│ │
└──────────────────────────┘
但是一直找不到该如何用 Code 去做排版...
试过一些方式排出来都又怪怪的.....
(位置要根据视窗大小调整,放在 sizeChanged 指派的事件中)
第二个问题就是关於这个 Label,能否设定让 Label 自动根据文字做
宽度的调整呢?
暂时遇到的问题是这两个,不过之後在这个 Canvas 上要做的排版会很多
不知道能不能提供小弟一个教学的网站或者文件有说明如何做排版的呢...
麻烦各位了 > <
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.123.86.26
1F:→ karcher:用code去排版,觉得windows form比较适合。 08/07 19:33
感谢,如果是用 Win Form 的话应该我想我应该没问题 XD
可是这是接别人的东西,他们用 WPF 做,我没办法把整个改掉 Q_Q
2F:推 Ansaga:我的做法是width/2再减掉你的一半宽度当加进去的点XD 08/07 19:53
我也是这样做,可是不知道要怎麽调整,如果只有一个按钮的话
我会用 Margin ,可是两个以上我怎麽用就是会跑掉ˊˋ
3F:推 justinlcs:Canvas排版时不参照水平或垂直对齐属性 08/07 20:52
4F:→ justinlcs:建议把容器换成Grid,从XAML应该不难下手 08/07 20:54
5F:→ justinlcs:Lable的话类似TextBlock,不设定Width 08/07 20:54
6F:→ justinlcs:对齐属性设定为延展或至中 08/07 20:55
7F:推 justinlcs:另外,在WPF TextBlock比起Label好操作,如果没特殊需求 08/07 21:00
8F:→ justinlcs:换成TextBlock会比较好操控 08/07 21:00
了解,先试着把 Label 改成 TextBlock
采用 Grid 能做到把底下的给 block 掉的功能吗?
另外因为主要是要靠 code 控制,有点不知道该怎麽下手 Q_Q
※ 编辑: darkk6 来自: 122.123.86.26 (08/07 22:34)
9F:→ karcher:google EditableTextBlock 08/08 09:06
10F:推 help0430:XAML写出来~~CODE也差不多~属性都一样阿 08/09 15:12