WPF下可編輯Header的Tab控制項實現

2021-08-25 15:12:58 字數 1055 閱讀 2336

介紹

接下來,我們需要定義個「editabletabheadercontrol」類,它具有控制textbox和textblock的能力。如下:

namespace editabletabheaderdemo

setthis.oldtext = this.textbox.text;

this.setvalue(isineditmodeproperty, value);}}

///

///

}///

/// sets the isinedit mode.

///

/// if set to true [value].

public void seteditmode(bool value)

private void timertick(object sender, eventargs e)

private void movetextboxinfocus()

}else

}private void textboxkeydown(object sender, keyeventargs e)

else if (e.key == key.enter)

}private void textboxlostfocus(object sender, routedeventargs e)

private void editabletabheadercontrolmousedoubleclick(object sender, mousebuttoneventargs e)}}

}

這裡有乙個問題,當控制項進入編輯狀態,textbox變為可見狀態時,它不能自動獲得focus。一種解決辦法是掛乙個timer,每1毫秒輪詢一次,檢查狀態並控制focus。

現在就來新增乙個wpf tabcontrol,並應用itemcontainerstyle。然後雙擊header,可以編輯啦~

許可證本文以及示例**檔案遵循the code project open license(cpol)。

editabletabheadersolution.zip

WPF下可編輯Header的Tab控制項實現

介紹 有這樣乙個需求,當使用者雙擊tab控制項header區域時,希望可以直接編輯。對於wpf控制項,提供乙個controltemplate在加上一些trigger就可以實現。效果如下 首先,我們需要給tab header設計乙個controltemplate。類似乙個textblock,雙擊進入編...

可編輯子項的CListCtrl類

一 說明 大家都知道在mfc中通過給clistctrl設定lvs editlabels屬性,並且在程式中響應控制項的lvn endlabeledit訊息可以修改列表控制項每一行的第一項,也就是主項 item 如下 void ceditlistctrlsampledlg onendlabeleditl...

可編輯子項的CListCtrl類

大家都知道在mfc中通過給clistctrl設定lvs editlabels屬性,並且在程式中響應控制項的lvn endlabeledit訊息可以修改列表控制項每一行的第一項,也就是主項 item void ceditlistctrlsampledlg onendlabeleditlist1 nmh...