【问题标题】:Visual State Manageer Not Responding to Maximise/Minimize Button视觉状态管理器不响应最大化/最小化按钮
【发布时间】:2017-01-02 07:26:13
【问题描述】:

我正在玩/学习 UWP 的视觉状态管理器。当我点击应用程序上的最大化/最小化按钮时,我有一段代码不响应触发器/设置器。如果我手动调整框的大小,它会响应良好。

当我点击最大化/最小化按钮时,我有第二段代码可以很好地响应他的触发器/设置器。

这两个代码看起来都和我一模一样,但我似乎遗漏了一些东西。提前感谢您的帮助

这里是没有响应最大化/最小化按钮的代码:

 <Grid Name="MyGrid" Background="White">

    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="Groups">
            <VisualState x:Name="WindowsPhone">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="MySplitView.DisplayMode" Value="Inline"/>
                    <Setter Target="HamburgerButton.Width" Value="100"/>
                    <Setter Target="MyGrid.Background" Value="LightBlue"/>
                    <Setter Target="AutoSuggestBox.Visibility" Value="Compact"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="WindowsTablet">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="600"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="MySplitView.DisplayMode" Value="Overlay"/>
                    <Setter Target="AutoSuggestBox.Visibility" Value="Visible"/>
                    <Setter Target="MyGrid.Background" Value="HotPink"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="Desktop">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="800"/>                        
                </VisualState.StateTriggers>
                <VisualState.Setters>                  
                    <Setter Target="MyGrid.Background" Value="Orange"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>



    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>


    <RelativePanel>
        <Button Name="HamburgerButton"
                Width="50"
                Height="50"
                Click="HamburgerButton_Click"
                FontFamily="Segoe MDL2 Assets"
                Content="&#xE700;"
                RelativePanel.AlignLeftWithPanel="True"/>

        <AutoSuggestBox Name="AutoSuggestBox"
                        QueryIcon="Find"
                        PlaceholderText="Search"
                        Width="200"                                  
                        RelativePanel.AlignRightWithPanel="True"
                        Margin="0,10,0,0"/>


    </RelativePanel>

    <SplitView Grid.Row="1"
               Name="MySplitView"
               IsPaneOpen="False"
               CompactPaneLength="50"
               OpenPaneLength="200"
               DisplayMode="CompactOverlay">


        <SplitView.Pane>
            <ListBox Name="MylistBox"
                     SelectionMode="Single"
                     SelectionChanged="MylistBox_SelectionChanged">
                <ListBoxItem>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Name="FirstIcon"
                                   FontFamily="Segoe MDL2 Assets"
                                   FontSize="30"
                                   Text="&#xE80F;"/>
                        <TextBlock Name="TextTextBlock"
                                   FontSize="20"
                                   Text="Hello"
                                   FontWeight="Bold"
                                   Margin="20,0,0,0"/>
                    </StackPanel>
                </ListBoxItem>
                <ListBoxItem>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Name="SecondIcon"
                                   FontFamily="Segoe MDL2 Assets"
                                   FontSize="30"
                                   Text="&#xE80F;"/>

                        <TextBlock Name="SeconTextBlock"
                                   FontFamily="20"
                                   Text="Hello Again"
                                   FontWeight="Bold"
                                   Margin="20,0,0,0"/>
                    </StackPanel>
                </ListBoxItem>
            </ListBox>
        </SplitView.Pane>


    </SplitView>

</Grid>

这是可以正常工作的代码:

 <Grid Name="ColorGrid" Background="Pink">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="VisualStateGroup">
            <VisualState x:Name="VisualStatePhone">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0"/>
                </VisualState.StateTriggers>
                 <VisualState.Setters>
                    <Setter Target="ColorGrid.Background" Value="Red"/>
                    <Setter Target="MessageTextBlock.FontSize" Value="18"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="VisualStateTablet">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="600"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="ColorGrid.Background" Value="Yellow"/>
                    <Setter Target="MessageTextBlock.FontSize" Value="40"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="VisualStateDesktop">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="800"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="ColorGrid.Background" Value="Blue"/>
                    <Setter Target="MessageTextBlock.FontSize" Value="60"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

    <TextBlock Name="MessageTextBlock" Text="Hello I am forgetting something"/>

</Grid>

【问题讨论】:

  • 我能够在 14393 上的一个空白项目中重现这一点。奇怪的是,这似乎只发生在调试会话中。如果你在没有调试的情况下运行,或者从 Start 启动,一切正常。
  • @BoltClock 嗯。确实很奇怪。我按照您提到的进行了测试,没有调试或从头开始,它可以正常工作。多么奇怪的小虫子

标签: c# uwp-xaml


【解决方案1】:

@BoltClock 更奇怪的是我创建了另一个项目,这个项目对最大化和最小化按钮的响应很好,但是当我手动调整它的大小时,它不响应“平板电脑”状态。

如果我从开始屏幕启动,一切正常。

`

    </VisualStateManager.VisualStateGroups>

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>



    <RelativePanel>
        <Button Name="HamburgerButton"
            Height="50"
            Width="50"
            FontFamily="Segoe MDL2 Assets"
            Content="&#xE700;"
            RelativePanel.AlignLeftWithPanel="True"
            Click="HamburgerButton_Click_1"/>

        <AutoSuggestBox Name="AutoSuggest"
                        Width="200"
                        QueryIcon="Find"
                        PlaceholderText="Search"
                        RelativePanel.AlignRightWithPanel="True"
                        Margin="0,10,0,0"
                        />

        <TextBlock Name="TitleTextBlock"
                   FontSize="30"
                   FontWeight="Bold"
                   RelativePanel.RightOf="HamburgerButton"
                   Text="Home"/>
    </RelativePanel>


    <SplitView Name="MySplitView"
               Grid.Row="1"
               OpenPaneLength="200"
               CompactPaneLength="50"
               DisplayMode="CompactOverlay">
        <SplitView.Pane>
            <ListBox SelectionMode="Single"
                     SelectionChanged="ListBox_SelectionChanged"
                    >
                <ListBoxItem>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Name="FirstIcon"
                                   FontFamily="Segoe MDL2 Assets"
                                   FontSize="30"
                                   Text="&#xE80F;"/>
                        <TextBlock Name="FirstText"
                                   FontSize="20"
                                   Text="Hello"
                                   FontWeight="Bold"
                                   Margin="10,0,0,0"/>
                    </StackPanel>
                </ListBoxItem>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Name="SecondIcon"
                               FontFamily="Segoe MDL2 Assets"
                               FontSize="30"
                               Text="&#xE80F;"/>
                    <TextBlock Name="SecondText"
                               FontSize="20"
                               Text="Hello Again"
                               FontWeight="Bold"
                               Margin="10,0,0,0"/>

                </StackPanel>
                <ListBoxItem>
                    <StackPanel>
                        <TextBlock/>
                        <TextBlock/>
                    </StackPanel>
                </ListBoxItem>

            </ListBox>
        </SplitView.Pane>

    </SplitView>

</Grid>`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 2011-02-27
    • 2016-03-04
    相关资源
    最近更新 更多