在创建的Silverlight Control中使用图片

在创建的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>
控件代码:
    public class MyQRCode : Control
    {
        
public MyQRCode() : base() {
            DefaultStyleKey 
= typeof(MyQRCode);
        }
        
public override void OnApplyTemplate()
        {
            
base.OnApplyTemplate();
        }
    }
 

 代码下载:https://files.cnblogs.com/nasa/SilverlightControlIncludeImage.zip
posted @ 2009-05-19 17:18  王喆(nasa)  阅读(1010)  评论(1编辑  收藏  举报