解決ScrollViewer滾動(dòng)問(wèn)題的辦法
來(lái)源:易賢網(wǎng) 閱讀:2044 次 日期:2014-08-29 11:00:53
溫馨提示:易賢網(wǎng)小編為您整理了“解決ScrollViewer滾動(dòng)問(wèn)題的辦法”,方便廣大網(wǎng)友查閱!

C# 中,兩個(gè)ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一個(gè)ListBox、Listview(控件本身有scrollviewer)的時(shí)候,我們本想要的效果是鼠標(biāo)滾動(dòng)整個(gè)ScrollViewer的內(nèi)容,但你會(huì)發(fā)現(xiàn)實(shí)際結(jié)果和你想像的不一樣,內(nèi)部有scrollviewer的內(nèi)容不會(huì)隨鼠標(biāo)的滾動(dòng)而滾動(dòng),怎么辦呢?

解決辦法如下:

先截取外面的ScrollViewer的滾動(dòng)事件,然后再重新讓外面的ScrollViewer觸發(fā)滾動(dòng)事件就可以了

假設(shè)有2個(gè)控件,一個(gè)是Listbox(內(nèi)部名字是listbox),一個(gè)是ScrollViewer(外部),Listbox在ScrollViewer內(nèi)部的,并且ListBox的scroll滾動(dòng)功能都禁用為Disabled,只啟用外部ScrollViewer的滾動(dòng)功能,這時(shí)添加如下代碼,則能使ListBox中的內(nèi)容隨ScrollViewer的鼠標(biāo)滾動(dòng)而滾動(dòng)

listbox.PreviewMouseWheel+=(sender,e)

{

var eventArg = new MouseWheelEventArgs(e.MouseDevice,e.TimeDevice,e.Delta);

eventArg.RoutedEvent = UIElement.MouseWheelEvent;

eventArg.Source = sender;

this.listbox.RaiseEvent(eventArg);

};

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:解決ScrollViewer滾動(dòng)問(wèn)題的辦法
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn)

版權(quán)所有:易賢網(wǎng)