我正在开发一个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