2009-07-07 7 views

Répondre

62

Vous devez ajouter une référence à l'intérieur de l'étiquette de la fenêtre. Quelque chose comme:

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

(Lorsque vous ajoutez xmlns: contrôle = » IntelliSense devrait lancer pour faire ce peu plus facile)

Vous pouvez alors ajouter le contrôle avec:

<controls:CustomControlClassName ..... /> 
+4

Nous sommes maintenant 2015, et le concepteur ne le fait toujours pas automatiquement? ** WTF!?! ** –

+0

@MartinHarris Que dois-je écrire dans "yourassemblyname"? –

+0

Évidemment, le nom de votre assembly - c'est le nom du fichier de sortie (principalement dll). Si la sortie dll a le nom awesome.assembly.dll alors "yourassemblyname" est "awesome.assembly". – honzakuzel1989

12

Vous avez probablement besoin d'ajouter le 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> 
11

quelques conseils: d'abord, assurez-vous qu'il ya un xmlns en haut qui inclut l'espace de noms votre vie de contrôle dans.

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

En second lieu, parfois IntelliSense est stupide.

+5

+1 pour "parfois intellisense is stupid.". Assurez-vous que le projet ne compile pas et ne fonctionne pas, j'ai perdu la trace du nombre de fois que VS m'a dit que mon xmal est invalide quand tout ce dont il avait besoin était une reconstruction pour le faire revenir. –

1

Voilà comment je l'ai eu à travailler:

contrôle utilisateur 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# contrôle utilisateur

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> 
Questions connexes