2010-05-05 28 views
4

我一直在研究命令行應用程序,最近決定將wpf窗口添加到應用程序中。我將其添加爲UserControl,但是我注意到我無法使用ShowDialog()從我的主代碼中調用此類;從WPF用戶控件更改爲窗口?

我試着將基類從UserControl改爲Window,但是發生錯誤;

public partial class UserControl1 : Window 
    { 
     public UserControl1() 
     { 
      InitializeComponent(); 
     } 

錯誤1 「ExcelExample.UserControl1」的分部聲明不得 指定不同的基地 classesExcelExample

我已在我的其他WPF應用程序中找到的所有引用無濟於事。幫幫我!

+0

不知道,但是當你改變的原因你得到的錯誤到一個不同的子類是在其他地方有一個UserControl1的定義(這就是「部分」的意思),可能在InitializeComponent()所在的文件中並且與您的用戶界面相關。 – 2010-05-05 14:48:25

+0

難以置信,對UserControl1進行全局搜索,我只能在XAML文件中找到引用。 我可以看到文檔是一個System.Window.Controls.UserControl 我可以將文檔轉換爲WPF文檔,並且需要更改哪個項目設置才能添加基本的WPF表單? – wonea 2010-05-05 15:01:33

回答

9

爲了改變基類,僅僅在代碼中改變它是不夠的。您還必須更改隨附的XAML文件中的根標籤和任何嵌套元素。例如,您有類似:

<UserControl x:Class="Your.Namespace.UserControl1" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <UserControl.Resources> 
    </UserControl.Resources> 
</UserControl> 

你必須改變它的東西,如:有關ShowDialog的()問題

<Window x:Class="Your.Namespace.UserControl1" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Window.Resources> 
    </Window.Resources> 
</Window> 
+0

精美的作品,謝謝! – wonea 2010-05-05 16:04:11