在创建的Silverlight Control中使用图片
在做控件的Template的时,有可能需要用到位图。但是直接把图片放到ControlTemplate中去,在编译运行时会有xamlprase错误。 这是控件没有找到图片资源报的错误。
图片正确的写法应该是这样:
<
Image
Source
="/MyControl;component/nasa.png"
/>
完整的Template代码如下:
<
ResourceDictionary
xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vsm ="clr-namespace:System.Windows;assembly=System.Windows"
xmlns:my ="clr-namespace:MyControl;assembly=MyControl"
>
< Style TargetType ="my:MyQRCode" >
< Style.Setters >
< Setter Property ="Template" >
< Setter.Value >
< ControlTemplate TargetType ="my:MyQRCode" >
< Grid x:Name ="Root" >
< Image Source ="/MyControl;component/nasa.png" />
</ Grid >
</ ControlTemplate >
</ Setter.Value >
</ Setter >
</ Style.Setters >
</ Style >
</ ResourceDictionary >
xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vsm ="clr-namespace:System.Windows;assembly=System.Windows"
xmlns:my ="clr-namespace:MyControl;assembly=MyControl"
>
< Style TargetType ="my:MyQRCode" >
< Style.Setters >
< Setter Property ="Template" >
< Setter.Value >
< ControlTemplate TargetType ="my:MyQRCode" >
< Grid x:Name ="Root" >
< Image Source ="/MyControl;component/nasa.png" />
</ Grid >
</ ControlTemplate >
</ Setter.Value >
</ Setter >
</ Style.Setters >
</ Style >
</ ResourceDictionary >
控件代码:
public
class
MyQRCode : Control
{
public MyQRCode() : base () {
DefaultStyleKey = typeof (MyQRCode);
}
public override void OnApplyTemplate()
{
base .OnApplyTemplate();
}
}
{
public MyQRCode() : base () {
DefaultStyleKey = typeof (MyQRCode);
}
public override void OnApplyTemplate()
{
base .OnApplyTemplate();
}
}
代码下载: http://files.cnblogs.com/nasa/SilverlightControlIncludeImage.zip