반응형
WPF에 Design Mode 속성이 있습니까?
Winforms에서는 다음과 같이 말할 수 있습니다.
if ( DesignMode )
{
// Do something that only happens on Design mode
}
WPF에도 이런 게 있나요?
실제로 다음과 같은 것이 있습니다.
System.Component Model.Designer Properties(디자이너 속성)GetIsInDesignMode
예:
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
public class MyUserControl : UserControl
{
public MyUserControl()
{
if (DesignerProperties.GetIsInDesignMode(this))
{
// Design-mode specific functionality
}
}
}
경우에 따라서는 비 UI 클래스에 대한 콜이 설계자에 의해 시작되는지 여부를 알아야 합니다(XAML에서 DataContext 클래스를 만드는 경우 등).이 MSDN 기사의 접근방식은 도움이 됩니다.
// Check for design mode.
if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue))
{
//in Design mode
}
WinForms에서 호스트되는 모든 WPF 컨트롤의 경우DesignerProperties.GetIsInDesignMode(this)
동작하지 않습니다.
Microsoft Connect에서 버그를 생성하여 회피책을 추가했습니다.
public static bool IsInDesignMode()
{
if ( System.Reflection.Assembly.GetExecutingAssembly().Location.Contains( "VisualStudio" ) )
{
return true;
}
return false;
}
답변이 늦었다는 건 압니다만, 다른 사용자분들께는DataTrigger
, 또는 XAML의 일반적인 장소:
xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=PresentationFramework"
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},
Path=(componentModel:DesignerProperties.IsInDesignMode)}"
Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
다음 항목 사용:
if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
{
//design only code here
}
(여기서는 비동기 및 파일 조작이 동작하지 않습니다)
또한 XAML에서 디자인 타임 오브젝트를 인스턴스화하려면 (d는 특별한 디자이너 이름 공간)
<Grid d:DataContext="{d:DesignInstance Type=local:MyViewModel, IsDesignTimeCreatable=True}">
...
</Grid>
언급URL : https://stackoverflow.com/questions/425760/is-there-a-designmode-property-in-wpf
반응형
'programing' 카테고리의 다른 글
vba code Cells에서 Excel 열의 값을 찾는 방법.검색 (0) | 2023.04.22 |
---|---|
Windows에서 Git Bash를 사용할 때 개인 키를 해독하기 위한 패스워드가 매번 입력되지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.04.22 |
시스템 추가 중Web.클래스 라이브러리의 스크립트 참조 (0) | 2023.04.22 |
C++에서 문자열을 토큰화하려면 어떻게 해야 하나요? (0) | 2023.04.22 |
파일은 유니버설 (3 슬라이스)입니다만, iOS의 스태틱 라이브러리의 ARMv7-s 슬라이스 에러는 포함되어 있지 않습니다만, 생략해도 될까요? (0) | 2023.04.22 |