Почему мое окно WPF не появилось даже с правильным синтаксисом?

Вот код

<Window x:Class = "WpfTest.MainWindow"
        xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local = "clr-namespace:BobuxNotifierWpfTest"
        mc:Ignorable = "d"
        Title = "test app" Height = "450" Width = "800"
        Background = "#fff0f6">
    <Grid Width = "390" HorizontalAlignment = "Left" Margin = "10,10,0,10" Background = "#ffe8f2">
        <Grid.RowDefinitions>
            <RowDefinition Height = "400*"/>
            <RowDefinition Height = "30*"/>
        </Grid.RowDefinitions>
        <Label FontSize = "35" FontWeight = "DemiBold" FontFamily = "Fonts\Halyard Text Regular" Margin = "10,0,10,10">
            heading
        </Label>
        <TextBlock FontSize = "18" FontFamily = "Fonts\Halyard Text Regular" FontWeight = "DemiBold" Foreground = "#633247" Margin = "15,65,0,0" TextWrapping = "WrapWithOverflow">
            <Label>first body line</Label>
            <Label>second body line</Label>
            <Label FontSize = "12" Margin = "0,20,0,0">footer</Label>
        </TextBlock>
    </Grid>
</Window>

этот код не дал мне никаких ошибок, но когда я запустил его, все, что я получил, было

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Я также ничего не делал с классом Main() или файлом xaml.cs.

любая помощь, лол

показать содержимое app.xaml

Lei Yang 22.03.2022 08:06

Вы указали окно как StartupUri в App.xaml следующим образом: <Application ... StartupUri = "MainWindow.xaml"> или вы создали новый экземпляр и вызвали Show в App.xaml.cs?

thatguy 22.03.2022 08:07

@thatguy ой, я новичок в wpf, поэтому я просто удалил этот файл, думая, что он бесполезен. Спасибо

Thegreatcatt 22.03.2022 08:16
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Application обычно является одним из самых важных классов в вашем проекте WPF, а не бесполезным.

Encapsulates a Windows Presentation Foundation application. [...]

You can implement an Application using markup, markup and code-behind, or code. If Applicationis implemented with markup, whether markup or markup and code-behind, the markup file must be configured as an Microsoft build engine (MSBuild) ApplicationDefinition item.

Вы должны указать WPF, какое окно должно отображаться при запуске, используя StartupUri.

<Application x:Class = "WpfTest.MainWindow"
             ...
             StartupUri = "MainWindow.xaml">

Другой способ — добавить обработчик события Startup и создать там свое окно.

<Application WpfTest.MainWindow""
             ...
             Startup = "OnStartup">
public partial class App : Application
{
   private void OnStartup(object sender, StartupEventArgs e)
   {
      new MainWindow().Show();
   }
}

При этом это возможно для запуска автономного приложения WPF без экземпляра Application.

A standalone application does not require an Application object; it is possible to implement a custom static entry point method (Main) that opens a window without creating an instance of Application.

Однако, по всей вероятности, это не то, что вы хотите сделать, поскольку объект приложения предоставляет услуги похож на словарь ресурсов для всего приложения, чтобы назвать только один с большим влиянием.

Application implements the singleton pattern to provide shared access to its window, property, and resource scope services. [...]

  • Application Lifetime: Activated, Current, Deactivated, DispatcherUnhandledException, Exit, Run, SessionEnding, Shutdown, ShutdownMode, Startup.

  • Application-Scope Window, Property, and Resource Management: FindResource, GetContentStream, GetResourceStream, LoadComponent, MainWindow, Properties, Resources, StartupUri, Windows.

  • Command-Line Parameter and Exit Code Processing: Application.Startup, Application.Exit, Application.Shutdown.

  • Navigation: FragmentNavigation, LoadCompleted, Navigated, Navigating, NavigationProgress, NavigationStopped, NavigationFailed, SetCookie, GetCookie.

Другие вопросы по теме