一个默认的WPF模板看起来像这样一个StartupUri属性。
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>
</Application.Resources>
</Application>
您需要删除的StartupUri和使用启动事件,而不是让你可以手动创建主窗口。
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources>
</Application.Resources>
</Application>
namespace WpfApplication1
{
public partial class App : Application
{
private XmppClientConnection _client = new XmppClientConnection ();
private void Application_Startup(object sender, StartupEventArgs e)
{
var mainWindow = new Window1();
mainWindow.Show();
}
}
}
然后你就可以添加一个新的构造到窗口1类,因此你可以通过它,你需要引用的对象。
public partial class Window1 : Window
{
private XmppClientConnection _client;
public Window1()
{
InitializeComponent();
}
public Window1(XmppClientConnection client):this()
{
_client = client;
}
}
像这样:
private void Application_Startup(object sender, StartupEventArgs e)
{
_client = new XmppClientConnection();
var mainWindow = new Window1(client);
mainWindow.Show();
}
@panamack:感谢您的评论,但你不明白我在所有 我在哪里可以把这个代码 **'公共XmppClientConnection客户端=新XmppClientConnection ();'** 从其他cs类访问它 – 2011-04-18 17:17:28
@Ahmed我将更新我的代码,使其在上下文中清楚。 – Grokodile 2011-04-18 17:22:55
@panamack 确定:)谢谢 – 2011-04-18 17:24:08