&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>
}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS