2009-06-03 5 views
1

Je suis nouveau SL provenant d'un fond WinForms où je pourrais instancier un UserControl ou le formulaire comme celui-ci:Silverlight - Charger le fichier XAML via C# (comme dans les jours WinForms) - Comment?

MyForm frm = new MyForm(); 
frm.ShowDialog(); 

Ainsi, dans SL, j'ai créé simple Page.xaml et un second fichier XAML appelé Page2 .xaml - Je lâchai un bouton dans le fichier Page.xaml et dans le cas de clic de ce bouton, j'ai essayé d'ajouter ce qui suit pour appeler le 2ème fichier XAML:

private void btnLoad_Click(object sender, RoutedEventArgs e) 
{ 
    Page2 frm2 = new Page2(); 
    frm2. // ?? don't know what write here ?? 
} 

Comment puis-je appeler UserControls XAML?

Répondre

0

Je crois en Silverlight ce que vous avez réellement besoin de faire est de naviguer vers une page séparée.

Il s'agit d'une plate-forme Web. Navigate est la forme Web des winforms. Méthode show()

1

Afin de naviguer vers une page Silverlight complètement différente, vous aurez besoin d'un contrôle "conteneur" avec votre page principale à l'intérieur. De là, vous pouvez configurer votre UserControl interne comme ceci:

insideControl = new Page2(); 

Pour plus d'informations: http://silverlight.net/learn/learnvideo.aspx?video=56933

+0

Grand, je l'ai fait ce qui suit et a pu charger ma forme: this.Content = new Page2() ; Mais pas exactement ce que je cherche. Je voudrais que Page2() apparaisse comme un "sous-formulaire", c'est-à-dire comme une forme modale. Comment puis-je faire ceci? –

+0

Vous pouvez utiliser le contrôle contextuel. –

0

La classe XamlReader a été développé exactement à cette fin. L'utilisation de ses méthodes Load ou Parse vous renverra les objets qui auraient été générés par votre Xaml.

0

Vous devez créer un UserControl.xaml qui est conteneur tehe de Page.xaml et page2.xaml

ce conteneur ont une grille avec x: Name = "miGrid" :

< x Grille : Name = "miGrid" />

après avoir chargé dans les enfants de ce contrôle l'instance de contrôle de l'utilisateur dans ce cas FRM2 ..

miGrid.Childrens.Clear(); miGrid.Childrens.Add (frm2);

1

Vous pouvez utiliser ChildWindow.Xaml et créer une instance de contrôle des enfants dans MainPage.xaml

ChildWindow chw = new ChildWindow(); 
chw.show(); 
Questions connexes