熟悉wpf 的朋友應該知道canvas 預設是不支援scale 和offset 操作的,如果我們想對canvas 裡包含的控制項進行整體縮放或移動可能會比較麻煩。kael rowan 提供了zoomablecanvas 類可以方便實現上述效果。我們可以在xaml 中直接使用對控制項布局進行開發,而不需要使用。
在專案中加入zoomablecanvas 相關類,編譯後工具欄中會出現zoomablecanvas 控制項。
有了zoomablecanvas 控制項接下來的事情就簡單多了,如下xaml **:
<通過兩個slider 控制canvas 縮放大小與位移距離,zoomablecanvas 的使用和canvas 基本相同,可以在其中加入其他控制項,最後只需要為silder_valuechanged 事件新增好內容即可。window x:
class
xmlns
=""xmlns:x
=""xmlns:my
="clr-namespace:system.windows.controls"
title
="mainwindow"
height
="350"
width
="525">
<
grid
>
<
grid.rowdefinitions
>
<
rowdefinition
height
="auto"/>
<
rowdefinition
height
="auto"/>
<
rowdefinition
/>
grid.rowdefinitions
>
<
stackpanel
orientation
="horizontal"
grid.row
="0">
<
textblock
text
="scale"/>
<
slider
minimum
=".1"
maximum
="4"
width
="200"
value
=""/>
stackpanel
>
<
stackpanel
orientation
="horizontal"
grid.row
="1">
<
textblock
text
="offset"/>
<
slider x:
name
="offsetval"
minimum
="-300"
maximum
="0"
width
="200"
valuechanged
="slider_valuechanged"/>
stackpanel
>
zoomablecanvas x:
name
="zoomcanvas"
grid.row
="2"
offset
="-50,0">
<
button
content
="test"
canvas.top
="10"
canvas.left
="10"/>
<
rectangle
fill
="blue"
canvas.top
="30"
canvas.left
="50"
width
="50"
height
="50"/>
my:zoomablecanvas
>
grid
>
window
>
private void slider_valuechanged(object sender, routedpropertychangedeventargs執行程式,通過滑塊調整zoomablecanvas 的scale 與offset 屬性,快速實現多控制項縮放與移動效果,如下圖對比。e)
初始狀態(調整前):
調整後:
WPF 實現縮放移動
熟悉wpf 的朋友應該知道canvas 預設是不支援scale 和offset 操作的,如果我們想對canvas 裡包含的控制項進行整體縮放或移動可能會比較麻煩。kael rowan 提供了zoomablecanvas 類可以方便實現上述效果。我們可以在xaml 中直接使用對控制項布局進行開發,而不...
WPF 實現word的縮放效果
原文 wpf 實現word的縮放效果 ms word做出的效果令人十分欣喜,那麼如何用wpf達到這個效果,下面我們來進行討論。disrow 50 slider grid.row 1 horizontalalignment right width 200 margin 10,0,100,0 verti...
unity ugui縮放 移動
乾貨羅列在前,不願意看的,拿東西走人,自己研究 關於ugui的排版方面,剛上手的時候,覺得 哎喲!不錯,這個刁。但是如果你使用過qt等軟體,其實ugui的對齊功能還是很落後的。如果你繼續使用這個排版功能,你就會發現 什麼啊這是,什麼邏輯啊,完全沒懂啊。如何修改ugui控制項到我指定的大小 如何移動u...