UWP 中的自适应 AutoSuggestBox
Adaptive AutoSuggestBox in UWP
我已经在 UWP 应用程序中实现了一个 AutoSuggestBox(用于搜索),如下面的屏幕截图所示,我正在尝试使其自适应,但我还没有找到方法。我希望它在 NarrowViewState 中看起来像一个按钮,如下所述:https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/search#Implementation
I want it to appear like a button in NarrowViewState.
我认为使用 VisualStateManager
.
可以达到预期的效果
对于您的方案,您可以使用 MinWindowWidth
AdaptiveTrigger
将 AutoSuggestBox 变成 NarrowViewState
中的按钮。你可以试试下面的代码或者参考我上传的project
<StackPanel
x:Name="LayoutRoot"
Height="640"
VerticalAlignment="Bottom"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<AutoSuggestBox
x:Name="SuggestBox"
PlaceholderText="Search some info!"
QueryIcon="AlignRight" />
<Button x:Name="SearchBtn" Content="SearchButton">
<Button.Flyout>
<Flyout Placement="Bottom">
<StackPanel>
<AutoSuggestBox x:Name="MiniSuggsetBox" PlaceholderText="search some info..." />
</StackPanel>
</Flyout>
</Button.Flyout>
</Button>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="WindowStates">
<VisualState x:Name="Normal">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SuggestBox.Visibility" Value="Visible" />
<Setter Target="SearchBtn.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Hide">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SuggestBox.Visibility" Value="Collapsed" />
<Setter Target="SearchBtn.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</StackPanel>
我已经在 UWP 应用程序中实现了一个 AutoSuggestBox(用于搜索),如下面的屏幕截图所示,我正在尝试使其自适应,但我还没有找到方法。我希望它在 NarrowViewState 中看起来像一个按钮,如下所述:https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/search#Implementation
I want it to appear like a button in NarrowViewState.
我认为使用 VisualStateManager
.
对于您的方案,您可以使用 MinWindowWidth
AdaptiveTrigger
将 AutoSuggestBox 变成 NarrowViewState
中的按钮。你可以试试下面的代码或者参考我上传的project
<StackPanel
x:Name="LayoutRoot"
Height="640"
VerticalAlignment="Bottom"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<AutoSuggestBox
x:Name="SuggestBox"
PlaceholderText="Search some info!"
QueryIcon="AlignRight" />
<Button x:Name="SearchBtn" Content="SearchButton">
<Button.Flyout>
<Flyout Placement="Bottom">
<StackPanel>
<AutoSuggestBox x:Name="MiniSuggsetBox" PlaceholderText="search some info..." />
</StackPanel>
</Flyout>
</Button.Flyout>
</Button>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="WindowStates">
<VisualState x:Name="Normal">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SuggestBox.Visibility" Value="Visible" />
<Setter Target="SearchBtn.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Hide">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SuggestBox.Visibility" Value="Collapsed" />
<Setter Target="SearchBtn.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</StackPanel>