2012-03-11 3 views
0

J'ai effectué un contrôle de bouton personnalisé dans WPF et j'essaie de l'implémenter dans WinForms (C#). Maintenant, le contrôle fonctionne et il se compile bien, mais je n'arrive pas à accéder à elementhost - le contrôle n'a pas été montré dans la boîte à outils, et ensuite j'ai vu qu'il est gelé, je ne peux pas l'ajouter au formulaire. Depuis le processus de construction du projet est allé sans erreurs ou avertissements, je ne sais pas ce qui cause le problème. Toute aide serait appréciée Merci.Contrôle WPF figé dans Visual Studio 2010

EDIT: Voici le code du fichier XAML:

<Button x:Class="proba4.UserControl1" 
      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="120" d:DesignWidth="300" IsEnabled="True"> 
    <Button.Template> 
     <ControlTemplate TargetType="{x:Type Button}"> 
      <Grid> 
       <Image Name="Normal" Source="C:\stuff\off_button.gif"/> 
       <Image Name="Pressed" Source="C:\stuff\on_button.gif" Visibility="Hidden"/> 

      </Grid> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsPressed" Value="True"> 
        <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/> 
        <Setter TargetName="Pressed" Property="Visibility" Value="Visible"/> 
       </Trigger> 

      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 

Répondre

0

Peut être il est parce que vous héritez votre contrôle de la classe non-usercontrol? Dans WPF, la première règle évite l'héritage de contrôle. Essayez d'utiliser la composition

+0

Je pensais à ce sujet, mais je n'ai pas d'expérience dans la composition. Des conseils? –

+0

C'est bon je l'ai fait; Merci beaucoup). –

+0

Le code ressemblera au vôtre, mais remplacez la balise Button par la balise UserControl dans la ligne 1 et ajoutez le tag