Silverlight中 RichTextBox的Xaml绑定

原创
小哥 3年前 (2022-10-20) 阅读数 10 #Web前端

RichTextBox是Silverlight是一个重要的控件,它经常用于呈现SL使用此控件可以呈现常见的粗体、斜体、下划线、段落、加载各种控件等。它支持XAML格式化文本输出,这在实践中使用得更广泛。说到这里Silverlight也许你用更多的数据表示,也许用数据绑定来实现,那么你能不能像以上两种结合在一起来实现RichTextBox上的XAML捆绑在一起,答案是肯定的。以下是具体实施过程的详细说明。

应用场景描述。应用场景的描述。应用场景说明。

为了更好地将自己的样式和一些特殊的转换处理应用到RichTextBox已重写,并且在以前的项目应用程序中,直接赋值用于xaml后台处理,没有显示任何错误。但其中一位同事想要用这个习俗RichTextBox执行数据绑定呈现执行数据绑定呈现XAML加载代码后,无法绑定该控件XAML出现了一个问题,即是否可以修改该控件以满足定制RichTextBox这个应用程序可以绑定,可以分配到后台,周末的分析,这个要求是可以达到的。

前一次赋值的代码如下所示。

public partial class MyRichTxt : UserControl  
{  
// 给定相关代码列表的长度  
public MyRichTxt()  
{  
InitializeComponent();  
}  
public string Xaml  
{  
get { return richTxt.Xaml; }  
set  
{  
string slXaml = "" ;  
if ( ! string .IsNullOrEmpty(value))  
slXaml = new XamlConvert().GetSXaml(value);  
richTxt.Xaml = slXaml;  
}  
}  

}

您可以直接从需要使用的接口调用此控件,并将前台设置为调用此控件的Name为MyRichTxt则对应的赋值为

MyRichTxt.Xaml = "

这是一个示例测试这是一个测试示例这是一个示例测试这里是一个测试示例
" ;

在处理单独的后端赋值呈现时,上面的逻辑是准确的,但如果使用数据绑定,则肯定不支持它,因此如果要使用数据绑定,实际上,当查看RichTextBox当我们发现的时候,当我们发现的时候Xaml不是RichTextBox的依赖属性的依赖属性的依赖属性RichTextBox这不在定义中,因为没有这样的定义DependencyProperty那么他就不能做前景绑定,但总有一种方法可以DataContext是设置它的一个很好的方法,在设置之后,通过Load事件,该事件在后台分配给事件,在后台分配给Xaml属性上从而实现绑定,文字先描述这么多,具体代码如下。

< RichTextBox Name = " richTxt " DataContext = " {Binding} " Loaded = " richTxt_Loaded " HorizontalAlignment = " Left " BorderThickness = " 0 " VerticalAlignment = " Top " />

ok然后,后端将相应的Loaded事件就足够了。后台代码如下。

private void richTxt_Loaded( object sender, RoutedEventArgs e)
{
if ((sender as RichTextBox).DataContext != null )
Xaml = (sender as RichTextBox).DataContext.ToString();
}

这允许您直接在前端接口中使用绑定来提供DataContext可以向此控件传递一个值,然后在后台进行处理。当然,前面赋值代码的逻辑保持不变,因此也支持绑定和赋值。

如上运行代码,效果如下。

如上所述,测试代码的运行结果、绑定模式和效果分别赋值如下。好了,到目前为止,要解决这个问题,我们还需要有更多的意见或建议进行沟通,谢谢。

转载于:https://www.cnblogs.com/Wendy\_Yu/archive/2011/06/13/2078374.html

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除