先上效果图:
思路:
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; } }
绑定图片Source
5.将定义的样式移植给MyChildWindow类
项目中创建Theme目录并创建Generic.xaml文件
将刚才的样式复制到Generic.xaml中更改一下targettype="local:MyChildWindow"
更新一下MyChildWindow类的构造函数:
public MyChildWindow() { this.DefaultStyleKey = typeof(MyChildWindow); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。