Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF DataTrigger用于设置宽度窗口属性_Wpf_Xaml_Datatemplate - Fatal编程技术网

WPF DataTrigger用于设置宽度窗口属性

WPF DataTrigger用于设置宽度窗口属性,wpf,xaml,datatemplate,Wpf,Xaml,Datatemplate,我想根据ViewModel属性的值设置窗口的宽度属性。首先,我有一个ContentControl: 然后: <DataTemplate DataType="{x:Type massedit:SimpleFieldVM}"> <ContentControl Content="{Binding .}"> <ContentControl.Style> <Style TargetT

我想根据ViewModel属性的值设置窗口的宽度属性。首先,我有一个ContentControl:

然后:

    <DataTemplate DataType="{x:Type massedit:SimpleFieldVM}">
        <ContentControl Content="{Binding .}">
            <ContentControl.Style>
                <Style TargetType="{x:Type ContentControl}">
                    <Setter Property="ContentTemplate" Value="{StaticResource DefaultTemplate}" />
                    <Style.Triggers>
                        <!-- Without selector, only with DataTriggers select my ContentControl -->
                        <DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.ENum}">
                            <Setter Property="ContentTemplate" Value="{StaticResource ComboboxEnumTemplate}" />
                            <Setter Property="Width" Value="100"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.List}">
                            <Setter Property="ContentTemplate" Value="{StaticResource ComboboxListTemplate}" />
                            <Setter Property="Width" Value="100"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.Bit}">
                            <Setter Property="ContentTemplate" Value="{StaticResource BitTemplate}" />
                            <Setter Property="Width" Value="100"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.Date}">
                            <Setter Property="ContentTemplate" Value="{StaticResource DateTemplate}" />
                            <Setter Property="Width" Value="150"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.DatTime}">
                            <Setter Property="ContentTemplate" Value="{StaticResource DatTimeTemplate}" />
                            <Setter Property="Width" Value="150"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding TargetFieldType}" Value="{x:Static eva:FieldDataType.Time}">
                            <Setter Property="ContentTemplate" Value="{StaticResource TimeTemplate}" />
                            <Setter Property="Width" Value="50"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ContentControl.Style>
        </ContentControl>
    </DataTemplate>


但是更改我的ContentControl的属性宽度。我想更改窗口的属性宽度

可以直接绑定Window.Width,也可以使用FitToContent属性

FitToContent将尝试使窗口适合其内容,这意味着如果您设法将内容设置为所需大小,则窗口将跟随。:)