&tag(WPF/ユーザーコントロール); &tag(WPF, ユーザーコントロール); *目次 [#x2ddf1ee] #contents *参考情報 [#j90493e9] -[[User Control in WPF:http://www.c-sharpcorner.com/uploadfile/mahesh/wpfusercontrol06292008215701pm/wpfusercontrol.aspx]] * Tips [#h644e60e] **ユーザーコントロールを継承する [#sae438f2] ***ContentPresenterの部分だけサブクラスで書き換える形式 [#ac8dae81] -[[Svetoslav Savov's Blog: User Control Inheritance in WPF:http://svetoslavsavov.blogspot.com/2009/09/user-control-inheritance-in-wpf.html]] -見た目の再利用が可能 *** ベースクラスのコード部分だけ継承する方法 [#t5270847] -[[WPF: Inheriting from custom class instead of Window:http://geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx]] -[[xaml - How can a WPF UserControl inherit a WPF UserControl? - Stack Overflow:http://stackoverflow.com/questions/887519/how-can-a-wpf-usercontrol-inherit-a-wpf-usercontrol]] ''手順'' -UserControlを継承したBaseUserControlを作る。[追加]→[クラス]で作成。単独のcsファイル。 #pre{{ namespace Sample { public class BaseUserControl:UserControl { public void DoSomething() { Debug.WriteLine("DoSomething"); } } } }} -自分のUserControlを作成する。[追加]→[ユーザーコントロール]で作成。xamlファイルとcsファイル。 --MyUserControl.xaml.cs #pre{{ namespace Sample { public partial class MyUserControl : UserControl { public MyUserControl() { InitializeComponent(); } } } }} --MyUserControl.xaml #pre{{ <UserControl x:Class="Sample.MyUserControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <Grid> </Grid> </UserControl> }} -ファイルを書き換える --MyUserControl.xaml.cs #pre{{ namespace Sample { public partial class MyUserControl : BaseUserControl { public MyUserControl() { InitializeComponent(); } } } }} --MyUserControl.xaml #pre{{ <local:BaseUserControl x:Class="Sample.MyUserControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Sample" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <Grid> </Grid> </local:BaseUserControll> }}