Исключение выдается после добавления стиля - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь добавить глобальный стиль в мое приложение.После добавления раздела в мой App.xaml я получаю непонятное исключение времени выполнения:

Произошло необработанное исключение типа 'System.IO.IOException' в PresentationFramework.dll. Не удается найти ресурс 'views / views /createjob.xaml '.

Во время разработки я вижу, что мои стили правильно применяются на панели дизайна / предварительного просмотра в Visual Studio.

Большинство примеров, которые я используюпри просмотре в Интернете показывается свойство Key, устанавливаемое для стиля, с явной ссылкой на каждое окно, которое его использует.Я ищу что-то глобальное, т.е. мне не нужно идти через мою кодовую базу и каждый раз явно ссылаться на стиль.

Full App.xaml

<Application x:Class="TestApp.Views.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:TestApp"
         StartupUri="Views/CreateJob.xaml">
<Application.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="VerticalContentAlignment" Value="Center"/>
    </Style>
</Application.Resources>

Полный CreateJob.xaml

<Window x:Class="TestApp.Views.CreateJob"
    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:TestApp"
    mc:Ignorable="d"
    Title="CreateJob" Height="450" Width="800">
<StackPanel Orientation="Horizontal">
    <Label Content="Name"/>
    <TextBox/>
</StackPanel>

Полный CreateJob.xaml.cs

using System.Windows;

namespace TestApp.Views
{
    /// <summary>
    /// Interaction logic for CreateJob.xaml
    /// </summary>
    public partial class CreateJob : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

Полный App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
</configuration>

1 Ответ

0 голосов
/ 10 мая 2018

Исходя из предоставленного вами кода, вы ищете неправильный ресурс.

Вы ищете его Views/CreateJob.xaml, но вы даете нам MainWindow.xaml с названием 'CreateJob'.URI ресурса ищет фактическое имя файла, а не заголовок.Обновите его так, и он будет работать.

StartupUri="Views/MainWindow.xaml"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...