Задача моя была проста - создать оформление для Window через Style, учитывая контент окна.
Суть проблемы: Добавление Setter Property="Template" не даёт приложению запуститься, а так как WPF не выводит исключения, в чём проблема - не ясно.
Проблема точно не в: ссылках на классы/xaml, подключении файлов ( так как без Setter Property="Template" всё запускается как необходимо ).
AuthorizationView.xaml:
<Window
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"
x:Class="NC.view.AuthorizationView"
mc:Ignorable="d"
Style="{ StaticResource SpaceView }"
Width="350" Height="450"
>
<Grid>
<TextBlock>TEST</TextBlock>
</Grid>
</Window>
SpaceView.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style
BasedOn="{ StaticResource { x:Type Window } }"
TargetType="Window"
x:Key="SpaceView"
>
<Setter
Property="WindowStyle"
Value="None"
/>
<Setter
Property="ResizeMode"
Value="NoResize"
/>
<Setter
Property="AllowsTransparency"
Value="True"
/>
<Setter
Property="Background"
Value="Transparent"
/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Window">
<Border
Background="{ StaticResource BaseColor }"
CornerRadius="{ StaticResource BorderRadius }"
>
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Ожидается увидеть как "результат":
<Window
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"
x:Class="NC.view.AuthorizationView"
mc:Ignorable="d"
WindowStyle="None"
ResizeMode="NoResize"
AllowsTransparency="True"
Background="Transparent"
Width="350" Height="450"
>
<Border
Background="{ StaticResource BaseColor }"
CornerRadius="{ StaticResource BorderRadius }"
>
<Grid>
<TextBlock>TEST</TextBlock>
</Grid>
</Border>
</Window>
так как WPF не выводит исключения- с чего это вдруг. Запускаете студию, запускаете там проект через отладку и получаете все ошибки.Ожидается увидеть как "результат":- вот это я не понял к чему. Ну а так, скопировал ваш стиль, вставил его вApp.xaml, поменял тамBaseColorиBorderRadius(ибо у вас их нету), скопировал стиль окна, запустил все без проблем. Так что, не воспроизводится, стоит вам заняться отладкой для начала, узнать, что конкретно не нравиться именно в вашем проекте (к примеру, нетBaseColor). P.S. Ужасное форматирование! – EvgeniyZ Mar 26 '22 at 20:08С проблемой разобрался, оказалось порядок подключения словарей влияет, с "BaseColor" был в самом низу ( ох, жалко потраченного дня из-за простого порядка стилей... ).
Отправьте полноценный ответ, отмечу решением, как станет доступно :)
– NyashMyash99 Mar 26 '22 at 20:25