首页 新闻 搜索 专区 学院

Telerik Silverlight4控件 源代码研究

0
悬赏园豆:200 [已关闭问题] 关闭于 2012-02-21 21:59

  小弟我最近在修改Telerik控件的源代码,我发现他们在写XAML代码的时候又一个很有意思的写法,请看下图:

<?BODY BEGIN?>
<?WPF BEGIN?>
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:controls="clr-namespace:Telerik.Windows.Controls"
xmlns:telerikData="clr-namespace:Telerik.Windows.Data"
xmlns:expressions="clr-namespace:Telerik.Windows.Controls.Expressions"
<?WPF END?>
<?SILVERLIGHT BEGIN?>
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:controls="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Expressions"
xmlns:telerikData="clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data"
xmlns:expressions="clr-namespace:Telerik.Windows.Controls.Expressions;assembly=Telerik.Windows.Controls.Expressions"
<?SILVERLIGHT END?>
<?BODY END?>
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
<?include(../Namespaces.xaml)?
>
>

<?BODY BEGIN?>
<telerik:Expression_DarkTheme x:Key="Theme"/>
<SolidColorBrush x:Key="ControlBackground" Color="#FF333333"/>
<SolidColorBrush x:Key="ExpressionEditorTextBox_Background" Color="#FF333333"/>
<SolidColorBrush x:Key="RadExpressionEditor_InfoPanel_BorderBrush" Color="#FF333333"/>
<SolidColorBrush x:Key="ControlOuterBorder" Color="#FF595959"/>
<SolidColorBrush x:Key="RadExpressionEditor_InfoPanel_Background" Color="#FF333333"/>
<SolidColorBrush x:Key="Control_Foreground" Color="#FFDDDDDD"/>
<SolidColorBrush x:Key="RadExpressionEditor_ResultsPanel_Background" Color="#FF3D3D3D"/>
<SolidColorBrush x:Key="CalculationPanel_Background" Color="#FF575859"/>
<SolidColorBrush x:Key="CalculationPanel_Foreground" Color="#FFC5C2C2"/>
<Color x:Key="FunctionColor_Foreground">#FF5597BB</Color>
<Color x:Key="MemberColor_Foreground">#FFFFC66D</Color>
<Color x:Key="StringColor_Foreground">#FF8AC25C</Color>
<Color x:Key="DateTimeColor_Foreground">#FFCC781F</Color>
<?BODY END?>
</ResourceDictionary>



他们先把页面中的命名空间给放在一个单独的XAML文件中,然后在需要使用命名空间的页面将命名空间文件导入进去,用<?include?>指令给导入,我从没见过这种写法,并且两个xaml文件的生成操作属性都是:PreprocessedXamlInclude,我想可能是他们自己写的自定义生成操作,但是具体咋回儿事儿还是不清楚,希望懂的人能给点解释。。。。小弟不胜感激

问题补充:

提高下悬赏,希望能给一个满意答案!!!!

Sharp_Knife的主页 Sharp_Knife | 初学一级 | 园豆:24
提问于:2012-02-08 16:09
< >
分享
所有回答(2)
0

这个答案  要关注的.  只知道网站是命名空间  不知道实现机制 希望楼主的.

小熊为你居然被注册了 | 园豆:205 (菜鸟二级) | 2012-02-08 16:36
0

这样写的主要作用是解耦,如果每个页面都写一大串引用的话,尤其是自定义引用,改起来会很麻烦,每个都要改,像telerik这样写的话,只需要把这个单独xaml文件改一下就OK了。

张民89 | 园豆:205 (菜鸟二级) | 2012-02-09 13:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册