WPF 디자인 타임에서 CustomControl 스타일 인식 문제?

안녕하세요. :smile:

WPF Design Time에서 디자인 적용에 대해 이상한 점이 있어 질문드립니다.

Xaml이 포함된 컨트롤을 제가 만든 커스텀 컨트롤로 변경하면
디자인 영역에서도 기본 스타일이 잘 적용되서 나오는데요.

(QuickSlot은 UserControl을 상속받습니다.)

<views:QuickSlot x:Class="DevFlow.Menus.Designs.DemoQuickSlot"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:views="clr-namespace:DevFlow.Menus.Views"
                 mc:Ignorable="d">
</views:QuickSlot>



하지만 상속받는 객체가 Window일 때에는 전혀 디자인이 적용 되질 않습니다.
(실행하면 잘 됩니다.)

그래서 제 구조가 문제인가 싶어서
새로운 프로젝트를 만들어 테스트해봐도 현상은 같았습니다.


그래서 아래와 같이 직접 리소스를 추가하고 Style을 선언하면
디자인 영역에서도 제대로 보입니다.

<main:MainView x:Class="DevFlow.Designs.DemoWindow"
               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:main="clr-namespace:DevFlow.Main.Views;assembly=DevFlow.Main"
               mc:Ignorable="d"        
			   Style="{DynamicResource MAINVIEW}">
	<main:MainView.Resources>
		<ResourceDictionary>
			<ResourceDictionary.MergedDictionaries>
				<ResourceDictionary Source="/DevFlow.Main;component/Themes/Generic.xaml"/>
			</ResourceDictionary.MergedDictionaries>
		</ResourceDictionary>
    </main:MainView.Resources>
</main:MainView>

(그리고 또 DynamicResource만 인식합니다.)


왜 Window을 상속받는 CustomControl은 Design Time에서 문제가 있을까요?

읽어주셔서 감사합니다. :smile:

좋아요 2

Window만의 특수성이 있어서 생기는 버그같네요… :disappointed:

간단하게 샘플 만들어서 GitHub WPF 이슈에 한번 문의해볼 예정입니다~

이 문제에 관련해서 Visual Studio 관련 티켓을 등록했습니다.

그리고 GitHub WPF 이슈로 몇일 뒤에 이동 된 상태입니다.

해결되었으면 좋겠네요. :sweat_smile:

좋아요 1