我正在開發一個Windows 10 UWP應用程序,並且想要添加帶有按鈕的文本框,如屏幕截圖中所示。截圖取自Windows 10上的通用地圖應用程序。如果有人可以指向我的任何文檔或樣本,我會非常感激。將按鈕添加到文本框
0
A
回答
2
這裏有一個提示:看TextBox control template。
它很長,所以我不會複製整個事情,但是如果你看看底部,你會注意到有一個ContentControl for placeholder文本(PlaceholderTextContentPresenter),還有一個名爲DeleteButton的按鈕,它是當您將注意力集中在帶有一些文本的文本框時可見。
這表明你想做的一種方法是修改模板,在DeleteButton或類似的東西旁邊有另一個按鈕(取決於你想要達到的目的),然後你可以隱藏它或根據當前VisualState顯示它,這也是您在模板中定義的內容。
製作一個模板也意味着你可以使它可以重複使用,所以你應該能夠在未來的項目中使用它。
0
這回答了後續問題:您如何處理額外按鈕上的事件?
如果您的新按鈕模板駐留在某個本地資源字典中(例如,Page.Resources
,您可以直接添加一個點擊處理程序,但是,如果按鈕模板位於單獨的資源字典(Styles.xaml或其他)中,這樣做需要的字典創建代碼隱藏它可能是更好的繼承和做這樣的事情:
public class MyTextBox : TextBox
{
public event EventHandler<RoutedEventArgs> ExtraClick;
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
Button extraButton = GetTemplateChild("ExtraButton") as Button;
if (extraButton != null)
{
extraButton.Click += (sender, e) => ExtraClick?.Invoke(sender, e);
}
}
}
然後,您可以處理這個(或其他任何你關心來解決),你實際使用的事件該按鈕,例如,
<local:MyTextBox ExtraClick="OnExtraClicked" />
代碼隱藏:
private void OnExtraClicked(object sender, RoutedEventArgs e)
{
// ...
}
出於完整性:外部字典必須在某一點在應用程序的資源被合併到現有的資源,例如:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
相關問題
- 1. QT創建按鈕,將文本添加到文本編輯框
- 2. 如何將文本添加到按鈕?
- 3. 將按鈕添加到文本區javafx
- 4. 將按鈕和文本框添加到Tkinter Treeview中的行
- 5. 單擊按鈕時如何將文本框添加到表格
- 6. 如何將按鈕添加到文本框?
- 7. 在word文本框中添加按鈕
- 8. 文本框後cliked我如何使按鈕添加到文本
- 9. 將按鈕添加到對話框
- 10. 如何將邊框添加到按鈕?
- 11. 將按鈕添加到窗口邊框
- 12. 如何通過單擊按鈕將文本添加到文本框
- 13. 將在另一個文本框下面添加文本框的按鈕?
- 14. 將按鈕綁定到文本框
- 15. 在jQuery對話框中將按鈕添加到我的按鈕
- 16. 將按鈕添加到jtable
- 17. 將按鈕添加到UITableView
- 18. 將按鈕添加到jtable
- 19. 將按鈕添加到MKPointAnnotation
- 20. 將按鈕添加到JPanel
- 21. 將按鈕添加到UILabel
- 22. 將按鈕添加到QTableview
- 23. 將按鈕添加到UIDatePicker
- 24. 將OnGestureListener添加到按鈕?
- 25. 將按鈕添加到ListActivity
- 26. 將按鈕添加到UIScrollview
- 27. 將按鈕添加到infoWindow
- 28. 將按鈕添加到BrowseFragment
- 29. 將UIGesture添加到按鈕
- 30. 將ActionListener添加到按鈕
我有一個關於這個解決方案的問題。如何處理額外添加按鈕的事件?正如所料,TextBox控件沒有公開這樣的事件。我需要繼承TextBox嗎?還是有另一種方法可以通過重新設計控件來完成? – Corcus