MetroWindow에 Behavior를 추가하면 붕괴
2017/04/16 추가
이 문제는 MahApps.Metro v1.6 이상에서 해결되었습니다.
전치
MahApps와 Material Design In XAML Toolkit은 WPF에서 쉽게 외형을 멋지게 만드는 라이브러리입니다.
위의 두 가지 기본 설명은
Material Design In XAML Toolkit로 손쉽게 WPF 앱을 아름답게
WPF "MahApps.Metro"를 사용하여 WPF 응용 프로그램을 ModernUI로 시도
등을 참고하십시오.
문제 발생
MetroWindow를 상속하여 만든 MainWindow에 Behavior를 추가하면 디자인이 무너져 버립니다.
↓
MetroWindow의 제일 특징인 Window의 타이틀 바가 2중이 되어 버리고 있습니다.
아래 코드의 Behavior 부분을 넣으면 문제가 발생합니다.
Behavior의 내용은 무엇이든 좋습니다.
MainWindow.xaml<mahApps:MetroWindow
x:Class="MetroErrorTest.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:mahApps="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="MetroWindow"
Width="300" Height="200">
<!-- 何かBehaviorを足すとデザインが崩れる -->
<i:Interaction.Behaviors>
<ei:DataStateBehavior />
</i:Interaction.Behaviors>
<Grid>
<Button Content="Button1" />
</Grid>
</mahApps:MetroWindow>
해결 방법
htps : // 기주 b. 코 m / 마하 ps / 마하 ps. 메 t로 / 이스에 s / 1760
에 따르면 MetroWindow에서 원래 정의되었던 Behavior가 덮어쓰여져 버리는 것이 원인인 것 같다.
그래서 다음과 같이 변경.
이제 처음과 같은 상태로 돌아갔다.
MainWindow.xaml<mahApps:MetroWindow
x:Class="MetroErrorTest.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Behaviours="http://metro.mahapps.com/winfx/xaml/shared"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:mahApps="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="MetroWindow"
Width="300"
Height="200">
<!-- MetroWindowのBehaviorを加えるとデザインが崩れない -->
<i:Interaction.Behaviors>
<ei:DataStateBehavior />
<Behaviours:BorderlessWindowBehavior />
<Behaviours:WindowsSettingBehaviour />
<Behaviours:GlowWindowBehavior />
</i:Interaction.Behaviors>
<Grid>
<Button Content="Button1" />
</Grid>
</mahApps:MetroWindow>
환경
VisualStudio2017
.NET Framework 4.6
C#6
Material Design In XAML Toolkit 2.3.0.823
MahApps.Metro 1.5
Reference
이 문제에 관하여(MetroWindow에 Behavior를 추가하면 붕괴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soi/items/159660c0de3f7804cf2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
MetroWindow를 상속하여 만든 MainWindow에 Behavior를 추가하면 디자인이 무너져 버립니다.
↓
MetroWindow의 제일 특징인 Window의 타이틀 바가 2중이 되어 버리고 있습니다.
아래 코드의 Behavior 부분을 넣으면 문제가 발생합니다.
Behavior의 내용은 무엇이든 좋습니다.
MainWindow.xaml
<mahApps:MetroWindow
x:Class="MetroErrorTest.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:mahApps="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="MetroWindow"
Width="300" Height="200">
<!-- 何かBehaviorを足すとデザインが崩れる -->
<i:Interaction.Behaviors>
<ei:DataStateBehavior />
</i:Interaction.Behaviors>
<Grid>
<Button Content="Button1" />
</Grid>
</mahApps:MetroWindow>
해결 방법
htps : // 기주 b. 코 m / 마하 ps / 마하 ps. 메 t로 / 이스에 s / 1760
에 따르면 MetroWindow에서 원래 정의되었던 Behavior가 덮어쓰여져 버리는 것이 원인인 것 같다.
그래서 다음과 같이 변경.
이제 처음과 같은 상태로 돌아갔다.
MainWindow.xaml<mahApps:MetroWindow
x:Class="MetroErrorTest.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Behaviours="http://metro.mahapps.com/winfx/xaml/shared"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:mahApps="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="MetroWindow"
Width="300"
Height="200">
<!-- MetroWindowのBehaviorを加えるとデザインが崩れない -->
<i:Interaction.Behaviors>
<ei:DataStateBehavior />
<Behaviours:BorderlessWindowBehavior />
<Behaviours:WindowsSettingBehaviour />
<Behaviours:GlowWindowBehavior />
</i:Interaction.Behaviors>
<Grid>
<Button Content="Button1" />
</Grid>
</mahApps:MetroWindow>
환경
VisualStudio2017
.NET Framework 4.6
C#6
Material Design In XAML Toolkit 2.3.0.823
MahApps.Metro 1.5
Reference
이 문제에 관하여(MetroWindow에 Behavior를 추가하면 붕괴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soi/items/159660c0de3f7804cf2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<mahApps:MetroWindow
x:Class="MetroErrorTest.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Behaviours="http://metro.mahapps.com/winfx/xaml/shared"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:mahApps="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="MetroWindow"
Width="300"
Height="200">
<!-- MetroWindowのBehaviorを加えるとデザインが崩れない -->
<i:Interaction.Behaviors>
<ei:DataStateBehavior />
<Behaviours:BorderlessWindowBehavior />
<Behaviours:WindowsSettingBehaviour />
<Behaviours:GlowWindowBehavior />
</i:Interaction.Behaviors>
<Grid>
<Button Content="Button1" />
</Grid>
</mahApps:MetroWindow>
VisualStudio2017
.NET Framework 4.6
C#6
Material Design In XAML Toolkit 2.3.0.823
MahApps.Metro 1.5
Reference
이 문제에 관하여(MetroWindow에 Behavior를 추가하면 붕괴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/soi/items/159660c0de3f7804cf2d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)