我不能让我的UWP对话超过一些固定的宽度。这个应用程序已经生产了几年,但在最后一次更新后,对话框都是一些奇怪的固定宽度。我正在使用MVVM光并刚刚更新到5.4.1但我只是调用ContentDialog子类化的对话框对象。正如我所提到的,这已经工作了大约1。5年左右,不知道为什么它只是停止工作。任何帮助将不胜感激。谢谢。
xaml代码如下:
SecondaryButtonText="Cancel"
PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
SecondaryButtonClick="ContentDialog_SecondaryButtonClick"
Width="Auto"
MinWidth="1000"
Opened="ContentDialog_Opened"
Closed="ContentDialog_Closed"
DataContext="{Binding Source={StaticResource ViewModelLocator}, Path=ClockDialog}">
<Grid HorizontalAlignment="Stretch" MinWidth="900">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.3*"/>
<ColumnDefinition Width="4*" MinWidth="200"/>
<ColumnDefinition Width="1.3*"/>
<ColumnDefinition Width="4*" MinWidth="200"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<StackPanel Orientation="Vertical">
<TextBlock Margin="0,6" Text="Type:" Style="{StaticResource CCBlackTextBlock}" HorizontalAlignment="Right"/>
<TextBlock Margin="0,8" Text="Mfg:" Style="{StaticResource CCBlackTextBlock}" HorizontalAlignment="Right"/>
ContentDialog的默认样式强制MaxHeight为184,MaxWidth为548:https://msdn.microsoft.com/en-us/library/windows/apps/mt299120.aspx
也许这是在您怀疑的更新中添加或更改的。要覆盖样式属性,请尝试以下操作:
<Grid Name="MyContainer">
<Grid.Resources>
<Style TargetType="ContentDialog" x:Key="largeDialaog">
<Setter Property="MaxHeight" Value="720" />
<Setter Property="MaxWidth" Value="1280" />
</Style>
</Grid.Resources>
<ContentDialog Style="{StaticResource largeDialog}">
<!--your content goes here-->
</ContentDialog>
</Grid>
根据之前的回复,我开始研究ContentDialog的样式。我找不到使用blend的默认样式,所以我决定创建自己的样式。我所做的就是将Documented style for ContentDialog发布的样式复制到我自己的样式库中,然后将其应用到我所有的ContentDialog屏幕上。这就行了,我又回来了。我怀疑几天前我应用的最新VS更新中缺少某些内容。
正如@Tom所说,我将MaxWidth和MaxHeight键复制到App Resources中,并更改为我想要的值。不需要这种风格的其他部分。
<Application.Resources>
<x:Double x:Key="ContentDialogMaxWidth">1200</x:Double>
<x:Double x:Key="ContentDialogMaxHeight">800</x:Double>