【发布时间】:2012-07-27 09:11:55
【问题描述】:
我想写一个TextBox控件,当它失焦时它是一个RichTextBox,当它聚焦时它变成一个TextBox。
我尝试了几种方法,但都没有奏效。几乎可以工作的唯一解决方案如下所示:
<RichTextBox x:Name="headText" Document="{Binding HeadDocument}" GotFocus="headText_GotFocus" LostFocus="headText_LostFocus">
<Controls:HyperlinkRichTextBox.Resources>
<ControlTemplate x:Key="headTemplate">
<TextBox Text="{Binding Head}" />
</ControlTemplate>
</Controls:HyperlinkRichTextBox.Resources>
</RichTextBox>
在后面的代码中:
private ControlTemplate oldTemplate;
private void headText_GotFocus(object sender, RoutedEventArgs e)
{
var controlTemplate = headLineText.FindResource("headTemplate") as ControlTemplate;
oldTemplate = headText.Template;
headText.Template = controlTemplate;
headText.Focus();
}
private void headText_LostFocus(object sender, RoutedEventArgs e)
{
headText.Template = oldTemplate;
}
问题是虽然文本框在两种状态之间切换,但是我不能往文本框里写任何东西!
【问题讨论】:
标签: c# .net wpf richtextbox controltemplate