微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

给Silverlight中的ChildWindow添加图标

先上效果图:


思路:

1.从ChildWindow派生一个子类MyChildWindow

2.对MyChildWindow添加一个图片属性:Source

3.然后从用MyChildWindow创建一个TestChildWindow的XAML

4.重新定义样式,添加一个Image对象将Source和Image进行绑定

5.将定义的样式移植给MyChildWindow类

6.完工

 

1.从ChildWindow派生一个子类MyChildWindow

2.对MyChildWindow添加一个图片属性:Source

代码如下:

	public class MyChildWindow:ChildWindow
	{
		public MyChildWindow()
		{
           		}
        public static DependencyProperty SourceProperty = DependencyProperty.Register("Source",typeof(ImageSource),typeof(MyChildWindow),null);
        

        public ImageSource Source
        {
            get { return ((ImageSource)(base.GetValue(MyChildWindow.sourceProperty))); }

            set { base.SetValue(MyChildWindow.sourceProperty,value); }

        }


	}


 

3.然后从用MyChildWindow创建一个TestChildWindow的XAML

 

XAML:

<controls:MyChildWindow x:Class="SilverlightApplication1.ChildWindow2"
           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
           
           xmlns:controls="clr-namespace:SilverlightApplication1"
           Width="400" Height="300" 
           Title="ChildWindow2" Source="/SilverlightApplication1;component/images/1.png">
    <Grid x:Name="LayoutRoot" Margin="2">
        <Grid.RowDeFinitions>
            <RowDeFinition />
            <RowDeFinition Height="Auto" />
        </Grid.RowDeFinitions>

        <Button x:Name="CancelButton" Content="取消" Click="CancelButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,0" Grid.Row="1" />
        <Button x:Name="OKButton" Content="确定" Click="OKButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,79,0" Grid.Row="1" />
    </Grid>
</controls:MyChildWindow>

CS:

 

    public partial class ChildWindow2 : MyChildWindow
    {
        public ChildWindow2()
        {
            InitializeComponent();
        }

        private void OKButton_Click(object sender,RoutedEventArgs e)
        {
            this.DialogResult = true;
        }

        private void CancelButton_Click(object sender,RoutedEventArgs e)
        {
            this.DialogResult = false;
        }
    }

 

修改样式使用Blend进行修改:如下图


 绑定图片Source

 

5.将定义的样式移植给MyChildWindow类

项目中创建Theme目录并创建Generic.xaml文件

将刚才的样式复制到Generic.xaml中更改一下targettype="local:MyChildWindow"

更新一下MyChildWindow类的构造函数:

public MyChildWindow()
		{
            this.DefaultStyleKey = typeof(MyChildWindow);
		}

6.以后使用就先创建一个ChildWindow将XAML和CS代码简单修改一下就可以了!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐