在创建的Silverlight Control中使用图片

2018-03-01 18:39:09 浏览数 (1)

在创建的Silverlight Control中使用图片

 在做控件的Template的时,有可能需要用到位图。但是直接把图片放到ControlTemplate中去,在编译运行时会有xamlprase错误。  这是控件没有找到图片资源报的错误。

图片正确的写法应该是这样:

代码语言:javascript复制
<Image Source="/MyControl;component/nasa.png" />

完整的Template代码如下:

代码语言:javascript复制
<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>

控件代码:

代码语言:javascript复制
public class MyQRCode : Control
    {
        public MyQRCode() : base() {
            DefaultStyleKey = typeof(MyQRCode);
        }
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
        }
    }

 更详细的资料:http://www.cnblogs.com/nasa/archive/2008/07/04/1235862.html

 代码下载:http://files.cnblogs.com/nasa/SilverlightControlIncludeImage.zip

0 人点赞