2016-10-22 85 views
1

我有一個WPF菜單應用程序,該調用WPF用戶控件DLL和DLL窗口不顯示。該DLL不需要參數,其窗口只有一個按鈕。我添加了一個MessageBox到dll代碼,以檢查它是否被加載並且確實存在,但窗口不顯示。Wpf dll用戶控制窗口不顯示時,從exe應用程序調用

我使用VS 2015年命名Empresa.Reg DLL項目是用C#的Windows經典桌面WPF用戶控件(沒有C#的Windows WPF用戶控件選擇)創建的,它是在菜單項目和它的輸出中引用是類庫。名爲MenuDePruebas Ouput的Menu項目是Windows應用程序。任何幫助,將不勝感激。

這是菜單的exe代碼:

....

using System.Windows; 
using Empresa.Reg; 

namespace MenuDePruebas 

{ 
    public partial class MainWindow : Window 

{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
    private void BtnRegEmpresa_Click(object sender, RoutedEventArgs e) 
    { 
     UserControl1 algo = new UserControl1(); 
    } 
} 

}

而這正是WPF用戶控制DLL的代碼:

....

using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace Empresa.Reg 
{ 
/// <summary> 
/// Interaction logic for UserControl1.xaml 
/// </summary> 

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
     MessageBox.Show("Testing"); // This line works as expected 

    } 
    private void button_Click(object sender, RoutedEventArgs e) 
    { 

    } 
} 

}

回答

0

我想我已經找到了一個解決方案,爲菜單exe中的dll用戶控件創建一個新窗口,如下所示,我認爲這是一個自動的事情。如果有更好的解決方案,我很感激告訴我。謝謝。

private void BtnRegEmpresa_Click(object sender, RoutedEventArgs e) 
    { 
     Window UserControlNewWindow = new Window 
      { 
      Title = "Some Title", Content = new UserControl1() 
      }; 

     UserControlNewWindow.ShowDialog(); 
    } 
0

一個簡單的方法:

在烏拉圭回合窗口的XAML添加一個ContentControl中

爲u點擊菜單中把相應的用戶控件的ContentControl中

<ContentControl x:Name="CntUsercontrol"/> 

在後面的代碼

CntUserControl.Content = new UserControl(); 

如果使用MVVM,則可以使用DataTemplate基於視圖模型切換視圖。

希望這會有幫助

+0

我會試試看,謝謝。 – Phantom719

相關問題