一些不起眼,但是因為不熟悉,沒遇到過,而糾結半天的小問題。
1、滑鼠懸浮改變背景顏色問題
問題描述:如下圖,是乙個黑色邊框,裡面巢狀乙個grid,grid裡面加乙個textblock。想要的效果是滑鼠移到grid裡面就實現改變整個grid的背景色。
布局**:
現實是滑鼠移到textblock時,才能改變grid的背景色。(該例子僅說明問題,實際我是在重寫control template時遇到的問題,例如設計乙個複雜的button,也會設計滑鼠懸浮改變背景色)<
border borderbrush=
"black" borderthickness=
"1" margin=
"100,150"
>
<
textblock text=
"測試背景色" background=
"red" foreground=
"white" width=
"100" height=
"50"
/>
<
style targettype=
"grid"
>
<
trigger property=
"ismouseover" value=
"true"
>
<
setter property=
"background" value=
"black"
/>
<
/trigger>
<
/style.triggers>
<
/style>
<
/grid.style>
<
/grid>
<
/border>
解決方法:很簡單,給grid新增乙個background屬性。
2、使用datatrigger繫結textblock的text屬性
問題描述:例如將textblock的內容繫結到radiobutton是否被選擇,如果選擇了則改變textblock的內容。如果用c#**寫會比較簡單,但是我喜歡使用觸發器實現一些小功能。例如下圖,預設選中男性,如果選擇女性則改變文字內容,並且文字顯示成紅色。
布局**:
實現思路:就是使用datatrigger 將文字內容和男性radiobutton的 ischecked繫結,如果沒選擇就顯示<
border borderbrush=
"black" borderthickness=
"1" margin=
"100,150"
>
<
stackpanel orientation=
"horizontal"
>
<
textblock margin=
"10" text=
"選擇男性"
>
<
style targettype=
"textblock"
>
<
datatrigger binding=
"" value=
"false"
>
<
setter property=
"text" value=
"選擇女性"
/>
<
setter property=
"foreground" value=
"red"
/>
<
/datatrigger>
<
/style.triggers>
<
/style>
<
/textblock.style>
<
/textblock>
<
radiobutton name=
"radiobtn_male" content=
"男" margin=
"10" ischecked=
"true"
/>
<
radiobutton content=
"女" margin=
"10"
/>
<
/stackpanel>
<
/border>
選擇女性
。看起來沒啥問題,可是實際執行起來卻不能改變text的屬性,但是可以改變文字顏色。
解決方法:將在textblock
標籤內設定的text
屬性拿出來,在style中設定
執行效果:<
setter property=
"text" value=
"選擇男性"
/>
3.去除datagrid最左側和最右側的兩列
看一下沒有去除時的樣子
圖中紅色方框就是左側和右側多出的兩列。
對於左邊那列,可以設定headersvisibility="column"
去除,效果如下
對於右側出現的這列,其實是因為設定了ip和port兩列的列寬,但是兩列的列寬又不足以充滿datagrid的寬度,那就自動產生了右側那列,補全空間。
所以,要麼datagrid的寬度設小一點,以至於會出現水平的滾動條,如下圖
要麼,讓本該是最右邊的那列,port列,寬度為*
,如下圖,那port這列將充滿右邊
持續更新中…
備份的一些小tip
npm官方映象 亞馬遜s3 host 219.76.4.4 github cloud.s3.amazonaws.com 修改gitingonre後重新版本控制 git rm r cached git add npmrc各種國內映象 殺死對應包的後台程序 adb shell am kill packa...
記錄一些 小程式
1 給定乙個整型陣列,有正數,負數和0.求出連續的子串行中的和的最大值。qiuhe.c 例如 int a 10 的最大值為子串行 7,9,2,0,5 求和,值為19 include int a int main else printf max d n max 2 輸入乙個已經按公升序排序過的整型陣列...
CSS學習筆記(記錄一些小技巧)
一 css簡介 css 是cascading style sheets的縮寫,中文意思是級聯樣式表,只要是任何和樣式有關的,布局 樣式 顏色 大小等等,都與css相關。css 是用來解決內容與表現分離的問題。把內容和樣式分離開 二 css語法 css語法 selector 選擇器 屬性 值 clas...