web-dev-qa-db-ja.com

ユーザーコントロールをwpfウィンドウに追加する

作成したユーザーコントロールはありますが、ウィンドウのXAMLに追加しようとすると、Intellisenseがそれを取得せず、ウィンドウに追加する方法がわかりません。

61
WedTM

Windowタグ内に参照を追加する必要があります。何かのようなもの:

xmlns:controls="clr-namespace:YourCustomNamespace.Controls;Assembly=YourAssemblyName"

(xmlns:controls = "を追加する場合、このビットを簡単にするためにintellisenseを起動する必要があります)

次に、以下を使用してコントロールを追加できます。

<controls:CustomControlClassName ..... />
71
Martin Harris

おそらく namespace を追加する必要があります:

<Window x:Class="UserControlTest.Window1"
    xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:UserControlTest"
    Title="User Control Test" Height="300" Width="300">
    <local:UserControl1 />
</Window>
15
user7116

いくつかのヒント:最初に、コントロールが存在する名前空間を含むxmlnsが上部にあることを確認します。

xmlns:myControls="clr-namespace:YourCustomNamespace.Controls;Assembly=YourAssemblyName"
<myControls:thecontrol/>

第二に、時々インテリセンスは愚かです。

12
Muad'Dib

これは私がそれを機能させる方法です:

ユーザーコントロールWPF

<UserControl x:Class="App.ProcessView"
             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>

ユーザーコントロールC#

namespace App {
    /// <summary>
    /// Interaction logic for ProcessView.xaml
    /// </summary>
    public partial class ProcessView : UserControl // My custom User Control
    {
        public ProcessView()
        {
            InitializeComponent();
        }
    } }

MainWindow WPF

<Window x:Name="RootWindow" x:Class="App.MainWindow"
        xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
        xmlns:app="clr-namespace:App"
        Title="Some Title" Height="350" Width="525" Closing="Window_Closing_1" Icon="bouncer.ico">
    <Window.Resources>
        <app:DateConverter x:Key="dateConverter"/>
    </Window.Resources>
    <Grid>
        <ListView x:Name="listView" >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <app:ProcessView />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </Grid>
</Window>