C# WPF Xaml主窗口在使用Show函数调用后显示
我在MicrosoftExpressionBlend 4中创建了一个裸体WPF项目 然后,我在VisualStudio2012中打开了该项目,并向该项目添加了一个简单的类 我将应用程序属性设置为使用该类作为启动对象 我创建了一个新的主窗口,然后对对象使用show函数 窗口弹出一毫秒,然后关闭 如何调用主窗口使其保持打开状态 类别1.csC# WPF Xaml主窗口在使用Show函数调用后显示,c#,wpf,xaml,C#,Wpf,Xaml,我在MicrosoftExpressionBlend 4中创建了一个裸体WPF项目 然后,我在VisualStudio2012中打开了该项目,并向该项目添加了一个简单的类 我将应用程序属性设置为使用该类作为启动对象 我创建了一个新的主窗口,然后对对象使用show函数 窗口弹出一毫秒,然后关闭 如何调用主窗口使其保持打开状态 类别1.cs [STAThread] static void Main() { MainWindow winMain = new MainWindow(); wi
[STAThread]
static void Main()
{
MainWindow winMain = new MainWindow();
winMain.Show();
}
MainWindow.xaml.cs
MainWindow.xaml
您为应用程序设置了两个入口点。一个在App.xaml中,另一个在Class1.cs中。所以最好从Class1.cs中删除下面的代码块
[STAThread]
static void Main()
{
MainWindow winMain = new MainWindow();
winMain.Show();
}
你为什么需要Class1.cs?您已经通过设置StartupUri在App.xaml中定义了应用程序的入口点。我想知道您在编译项目时没有因为设置了2个入口点而出现任何异常。所以最好删除[STAThread]static void Main(){MainWindow winMain=new MainWindow();winMain.Show();}我用Class1.cs作为最简单的例子,Class1最终会包含核心程序代码,并调用其他类,我需要显示几个窗口,取决于代码中发生了什么。因此,需要/希望通过代码调用xaml窗口。我并没有收到任何例外,到目前为止还并没有人回答这个问题。我尝试从App.xaml中删除Startupuri调用,但也没有成功。谢谢您可以根据代码创建和显示任意数量的窗口。只是您不需要Class1.cs中的Main方法来再次指定应用程序的入口点。我从App.xaml中删除了另一个入口点,因此不再有2个入口点,调用mainwindow会使其消失。那么,我该如何称呼它,或任何其他窗口,从哪里?如果我有一个主窗口2,我会怎么称呼它?谢谢
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication5.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Grid x:Name="LayoutRoot"/>
</Window>
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication5.App"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Windows;
namespace WpfApplication5
{
public partial class App : Application
{
}
}
[STAThread]
static void Main()
{
MainWindow winMain = new MainWindow();
winMain.Show();
}