0
일부 기능을 추가하기 위해 Window
을 확장했으며이 중 일부는 특정 창 크기를 지정하거나 내용의 크기를 지정하는 기능입니다. 코드 숨김은 현재 MVVM 화되지 않은 것처럼 보입니다.WPF DataTrigger setters가 창 너비와 높이가 변경되지 않음
public partial class DialogWindow : Window
{
public bool HasSize { get; set; }
public Size Size { get; set; }
}
는 XAML은 다음과 같습니다
<Window ... Name="DialogWindowElement">
<Window.Style>
<Style TargetType="Window">
<Style.Triggers>
<DataTrigger Binding="{Binding HasSize, ElementName=DialogWindowElement}" Value="True">
<Setter Property="Width" Value="{Binding Size.Width, ElementName=DialogWindowElement}" />
<Setter Property="Height" Value="{Binding Size.Height, ElementName=DialogWindowElement}" />
</DataTrigger>
<DataTrigger Binding="{Binding HasSize, ElementName=DialogWindowElement}" Value="False">
<Setter Property="SizeToContent" Value="WidthAndHeight" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Style>
<ContentControl ...>
<!-- Content control using DataTemplates to determine content -->
</ContentControl>
</Window>
내용에 크기 조절 괜찮 작동하는 것 같다,하지만 지정된 폭과 높이가 적용되지 않습니다. 크기가 큰 모든 내용은 제약을받지 않고 나중에 크기를 조정할 수있는 대신 필요한 모든 크기로 확장됩니다.
스누프 및 기타 도구는 트리거가 실행된다는 것을 의미하지만 설정자가 어떤 영향을 미치지 않는 것 같습니다.
여기에 뭔가가 있습니까?
편집 : 창에 콘텐츠 컨트롤을 추가 이것은 나를 위해 작동 좀 더 상황
너비와 높이 바인딩은 TwoWay 여야합니다. 예 : 여기에 : https://stackoverflow.com/q/2673600/1136211 – Clemens
@Clemens 아니 기쁨. 위와 같이 '너비'와 '높이'바인딩을 'TwoWay'로 설정하고 바인딩을 두 개의 별도의 너비 및 높이 이중 속성으로 분리하려고했습니다. 어떤 접근 방식도 창을 크기에 따르지 않았습니다. – Dan
샘플 코드가 다소 혼란 스럽습니다. 실제로 HasSize 및 Size 속성을 설정하고 있습니까? XAML에서 창의 높이 및 너비 속성을 설정하고 있습니까? – mm8