這幾天一直與listbox打交道,對listbox的了解也加深了一層,這篇文章把相關的思路寫下來,為了簡化起見,省略了一些無關重要的東西
首先宣告資料來源物件,這裡以乙個簡單的類為例
publicclass person
publicstring lastname
}
publicclass people : observablecollection
public people()
,
new person,
new person
};
}
}資料來源已經建立好了,現在將其繫結到listbox中,這裡需要橫向繫結,sdk中有橫向繫結的實現,這裡就不再進行細說,按照需求,當滑鼠移到firstname時提示關於lastname的資訊,才開始做的時候總是無法顯示提示資訊,然後在網上找到了原因:附加屬性tooltipservice.tooltip並沒有繼承上層元素的datacontext
原因找到了,解決思路就清晰了,先宣告乙個值轉換器
publicclass myconvert : ivalueconverter
returnnull;
}
...
}將相關的類宣告為資源
<loacls:people
x:key="people"
>
loacls:people
>
<xaml**:loacls:myconvert
x:key="convert"
>
loacls:myconvert
>
<grid
datacontext=""
>
<listbox
itemssource=""
scrollviewer.verticalscrollbarvisibility="hidden">
<itemscontrol.itemspanel
>
<itemspaneltemplate
>
<stackpanel
orientation="horizontal"
>
stackpanel>
itemspaneltemplate>
itemscontrol.itemspanel>
<listbox.itemtemplate
>
<datatemplate
>
<grid
>
<textblock
text=""
tooltipservice.placement="mouse"
tooltipservice.tooltip="}"
/>
grid>
datatemplate>
listbox.itemtemplate>
listbox>
grid這樣就能夠最終顯示提示資訊了,>
現在我需要將提示資訊隨滑鼠的移動而移動,網上有實現的方法,不過我這裡首先要需要解決怎樣獲取datatemplate內的控制項
<textblock
x:name="mytxt"
mousemove="textblock_mousemove"
fontfamily="arial"
foreground="#333333"
fontsize="18"
text=""
>
<tooltipservice.tooltip
>
<tooltip
x:name="tip"
placement="mouse"
>
<binding
path="lastname"
converter=""
>
binding
>
tooltip>
tooltipservice.tooltip>
textblockdatatemplate進行了一些改動,那麼我需要先獲取textblock,再獲取其中的tooltip,這個部分參考了園裡這篇文章>
,當滑鼠在textblock移動時,就進行下面的處理:
privatevoid textblock_mousemove(object sender, mouseeventargs e)
else
textblock mytxt = findfirstvisualchild(_selecteditem, "mytxt");
tooltip tip = mytxt.findname("tip") as tooltip;
if (tip != null)
else
}
}獲取視覺化的**也貼出來:
public t findfirstvisualchild(dependencyobject obj,string childname) where t : dependencyobject
else
}
}
returnnull;
}完成以後,就實現選擇listbox的item時,提示資訊就會跟隨滑鼠的移動而移動了。其實利用上面的方法,也可以動態的改變listboxitem的背景色
_selecteditem.background = new solidcolorbrush(colors.orange);上面所講用到不少的知識點,希望對你有所幫助,不過上面有個地方我總是無法實現,即如datagrid那樣,將listboxitem的背景色進行交替變換,我模仿msdn上改變 listview 中各行的背景色
進行修改,但是沒能實現,只好以後如果解決了再貼出來,如果有朋友實現過這個功能,也請不吝賜教!
Joggler 使用中遇到的問題
1.挑u盤 使用官方提供的系統起來從u盤讀取 資源的時候發現有的u盤認不出來。後來發現是u盤分割槽的問題。因為這個系統一定要掛接 dev sdx1這個分割槽,所以需要採用hdd格式的優盤,zip的是不認的 2.ubuntu上執行o2的圖形前端不能工作 這幅是使用出廠的mmcblock0p2裡的 op...
Git Gerrit 使用中遇到的問題
1.remote rejected release refs for release no new changes 非常惱人的乙個問題。在網上做了些搜尋後,都說是許可權配置問題。但是,事實上我已經有了onwer與push許可權。當然也可能是版本問題,因為gerrit的版本是2.1.0 最終還是把 p...
mysql使用中遇到的問題
問題一 第一次mysql啟動服務失敗,未返回報錯資訊 解決方法 執行 mysqld console命令,檢視error資訊,對症下藥 但一般情況下,主要是因為mysql目錄下的data資料夾中內容不正確,解決方法有以下兩個 1.在開啟服務前執行初始化命令 mysqld initalize 然後啟動服...