2015-10-16 38 views
1

我已经创建了一个自适应触发具有三个设置器当minWindowWidth> = 0。但它不工作。我在这里看到了一个类似的问题,但在这种情况下,自适应触发器在电网外。即使自适应触发器在网格中不起作用。我已附加实现。网格最初设置为折叠状态,但一旦满足自定义条件,它就会设置为可见。自适应触发在Windows 10不工作UWP

<Grid x:Name="loginGrid" Visibility="Collapsed" Margin="12,0,12,0"> 
    <!--Adaptive trigger for setting grid width and height--> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup> 
      <VisualState> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="9"/> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="titl.Text" Value="Test"/> 
        <Setter Target="Login.Content" Value="Test"/> 
        <Setter Target="loginGrid.Margin" Value="12,500,12,500"/> 
       </VisualState.Setters> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 


    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="auto"/> 
     <RowDefinition Height=".25*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="7*" /> 
    </Grid.RowDefinitions> 

    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
    <TextBlock x:Name="titl" Grid.Row="0" Grid.Column="0" TextAlignment="Center" FontSize="{StaticResource PivotHeaderItemFontSize}" Grid.ColumnSpan="2"/> 
    <TextBlock Text="Register No" Padding="10,10,10,10" FontSize="{StaticResource SearchBoxContentThemeFontSize}" Grid.Row="1" Grid.Column="0" TextAlignment="Center"/> 
    <TextBox x:Name="regNo" TextWrapping="Wrap" Text="" FontSize="{StaticResource SearchBoxContentThemeFontSize}" Grid.Row="1" Grid.Column="1" InputScope="Number"/> 
    <Button x:Name="Login" Content="Login" Click="Login_Click" Background="{ThemeResource AppBarBackgroundThemeBrush}" FontSize="{StaticResource SearchBoxContentThemeFontSize}" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 
</Grid> 

回答

2

我没有看到你的代码有关adapative触发器的任何错误。

该错误更多是一个边距错误以及行高度错误。您正在使用500px的上/下边距所以SOU需要有一个屏幕有超过1000像素的高度看到的东西。 您还滥用了行高的星级符号。星号表示可用空间的一小部分。

例如,以下内容:

<RowDefinition Height="*" /> 
<RowDefinition Height="*"/> 
<RowDefinition Height="8*" /> 

意味着第一行将网格中的可用空间,第二个10%太和最新的80%的10%。 但是,如果可用空间为0像素,所有行都会有0像素的高度。

如果设置顶/底边距为一个较小值,让已经固定高度内容的行(如文字,按钮等)采取他们所需要的空间(设置高度自动),它会工作。

<Grid.RowDefinitions> 
     <RowDefinition Height="auto" /> 
     <RowDefinition Height="auto"/> 
     <RowDefinition Height=".25*"/> 
     <RowDefinition Height="auto"/> 
     <RowDefinition Height="7*" /> 
    </Grid.RowDefinitions> 

我已经改变了第一和第四个行高度自动所以内容将始终不显示的显示尺寸是什么事。

关于AdaptiveTrigger,不要忘记,UWP应用程序的最小窗口大小为320像素,因此将最小宽度设置为9px将在触发器中始终处于活动状态。

+0

我已经将minWindowWidth分别设置为720和首先将顶部和底部边距设置为50和200。但它没有工作。所以,这就是为什么我改变了minWindowWidth 9使其被触发,每次也改变保证金看到一个区别。 – Razor

+0

而我没有Windows手机模拟器。所以我在我的桌面应用程序中测试适应性触发器。调整应用程序调用自适应触发器? – Razor

+0

您是否尝试过将第一行和第四行高度设置为auto的网格定义?您还可以使用VS 2015中的Live Tree Explorer控制绘制控件的方式/位置。您可以使用它来检查控件上应用了哪些属性/样式。 – Vincent

相关问题