[問題] WPF 一些排版上的問題

看板C_Sharp (C#)作者 (Mr. Pan)時間14年前 (2011/08/07 18:16), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串1/1
最近因為工作需要,第一次接觸 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

08/07 19:33, , 1F
用code去排版,覺得windows form比較適合。
08/07 19:33, 1F
感謝,如果是用 Win Form 的話應該我想我應該沒問題 XD 可是這是接別人的東西,他們用 WPF 做,我沒辦法把整個改掉 Q_Q

08/07 19:53, , 2F
我的做法是width/2再減掉你的一半寬度當加進去的點XD
08/07 19:53, 2F
我也是這樣做,可是不知道要怎麼調整,如果只有一個按鈕的話 我會用 Margin ,可是兩個以上我怎麼用就是會跑掉ˊˋ

08/07 20:52, , 3F
Canvas排版時不參照水平或垂直對齊屬性
08/07 20:52, 3F

08/07 20:54, , 4F
建議把容器換成Grid,從XAML應該不難下手
08/07 20:54, 4F

08/07 20:54, , 5F
Lable的話類似TextBlock,不設定Width
08/07 20:54, 5F

08/07 20:55, , 6F
對齊屬性設定為延展或至中
08/07 20:55, 6F

08/07 21:00, , 7F
另外,在WPF TextBlock比起Label好操作,如果沒特殊需求
08/07 21:00, 7F

08/07 21:00, , 8F
換成TextBlock會比較好操控
08/07 21:00, 8F
了解,先試著把 Label 改成 TextBlock 採用 Grid 能做到把底下的給 block 掉的功能嗎? 另外因為主要是要靠 code 控制,有點不知道該怎麼下手 Q_Q ※ 編輯: darkk6 來自: 122.123.86.26 (08/07 22:34)

08/08 09:06, , 9F
google EditableTextBlock
08/08 09:06, 9F

08/09 15:12, , 10F
XAML寫出來~~CODE也差不多~屬性都一樣阿
08/09 15:12, 10F
文章代碼(AID): #1EFcNfTC (C_Sharp)
文章代碼(AID): #1EFcNfTC (C_Sharp)