目錄區域:html
wpf 客戶端【JDAgent桌面助手】業餘開發的終於完工了。。曬曬截圖
wpf 客戶端【JDAgent桌面助手】開發詳解-開篇程序員
內容區域:佈局
這裏開始主窗口 圓形菜單製做的過程,首先請你們看看下面的截圖,想想spa
1.若是你用winform如何開發呢? 若是用wpf怎麼開發呢?.net
2.佈局看起來不難作啊。可是真的很簡單麼?code
3.個人窗體不是想金山毒霸哪有的窗口大小寬高固定的,那若是窗口最大化或者改變了寬高,中間的圓形菜單仍是原來的大小,豈不是中間那麼大區域就這麼一個小圈太難看了吧?orm
你們思考5min後。。繼續向下看。。。程序員最享受的是思考過程,靜心思考,若是有更好的解決或者實現方法,或者發行我實現的方法有漏洞是留言。。。。htm
上圖:blog
第一步 佈局背景圖:ip
咱們先設定好容器gird 爲380px 三個正圓形 一個是最外面的藍色光環,一個是中間的藍色光環,一個是最內部的有點灰色的圓形,在加一個 中間的小狗 Ok 簡單佈局就行了:
1 <Grid Height="380" 2 Width="380" 3 Name="menuGrid"> 4 <Ellipse Name="menuRoundBig" 5 Fill="#F4F8FB" 6 HorizontalAlignment="Center" 7 VerticalAlignment="Center" 8 Stroke="#E0E0E0" 9 StrokeThickness="1" 10 Height="380" 11 Width="380"> 12 <Ellipse.Effect> 13 <DropShadowEffect BlurRadius="20" 14 ShadowDepth="0" 15 Color="#52D3EC" /> 16 </Ellipse.Effect> 17 </Ellipse> 18 <Ellipse Name="menuRoundSmall" 19 HorizontalAlignment="Center" 20 VerticalAlignment="Center" 21 Stroke="#E0E0E0" 22 StrokeThickness="0" 23 Height="300" 24 Width="300"> 25 <Ellipse.Effect> 26 <DropShadowEffect BlurRadius="50" 27 ShadowDepth="0" 28 Color="#52D3EC" /> 29 </Ellipse.Effect> 30 <Ellipse.Fill> 31 #DFE2E5 32 </Ellipse.Fill> 33 </Ellipse> 34 <Ellipse Name="menuRoundCenter" 35 HorizontalAlignment="Center" 36 VerticalAlignment="Center" 37 Stroke="#E0E0E0" 38 StrokeThickness="0" 39 Height="300" 40 Width="300"> 41 <Ellipse.Fill> 42 <RadialGradientBrush RadiusX="1" 43 RadiusY="1" 44 GradientOrigin="0.7,0.3"> 45 <GradientStop Color="White" 46 Offset="0"></GradientStop> 47 <GradientStop Color="#DFE2E5" 48 Offset="1"></GradientStop> 49 </RadialGradientBrush> 50 </Ellipse.Fill> 51 </Ellipse> 52 <Image Name="menuCenterimg" 53 Source="/img.png" 54 Height="120" 55 Stretch="Uniform"> 56 </Image> 57 <Canvas Name="MenuCanvas" 58 HorizontalAlignment="Center" 59 VerticalAlignment="Center" 60 Height="340" 61 Width="340"> 62 </Canvas> 63 </Grid>
第二步 佈局按鈕圖:
在這裏要用到勾股定理計算6個按鈕的座標,計算過程我就不寫了,原本想弄個圖的。。弄的也很差。。。這個寫博客真是費勁啊。。
就下面的圖湊合看吧。。。360度。。總共6個角度因此每一個角度60度。
第三步 在窗口大小改變時如何自適應,而可以保持合適的大小;
兩點 :
<Grid> <Grid.RowDefinitions> <RowDefinition Height="1*"></RowDefinition> <RowDefinition Height="5*"></RowDefinition> <RowDefinition Height="1*"></RowDefinition> </Grid.RowDefinitions> <Viewbox Name="viewboxAnimUI" Grid.Row="1"> </Viewbox> <!-- 這裏放置剛纔第一步的代碼 --> </Grid>
看出來了嗎:1:5:1 上下空1比例的尺寸 ,中間留5比例尺寸。。。合適的大小;
加個
Viewbox 這樣 wpf 會自動處理內容控件的寬高等比例縮放!是否是很方便很強大呢。
第四部 上截圖,上代碼了:
下載:(因爲博客園只提供30M的空間,用完後就得本身傳到網盤裏了,因此提供csdn下載,可是0積分啊親。。。哎這年月容易麼,上個碼還不敢要分,感受好的親們。。推薦一個唄。。。)http://download.csdn.net/detail/gwxyyuqiang/6962087