2

有没有人有关于如何设置新的 SearchBox ( http://msdn.microsoft.com/library/windows/apps/dn252771 ) 以仅显示字形的示例?某些 Windows 8.1 商店应用程序仅显示带有搜索字形的搜索框,当您按下搜索字形时,会出现文本框。

我无法找到显示此内容的示例应用程序。

4

2 回答 2

2

正如弗拉德的回答所提到的,您需要创建一种样式。

将 SearchBox 添加到您的页面,然后在设计器中右键单击它并选择编辑模板。

然后在混合样式中,您需要修改正常、焦点状态和 FocusedDropDown 状态以在焦点更改时自动显示/隐藏。

以下是使用混合的建议步骤,适用于您,

最终代码在此要点中

1- 添加搜索框

<SearchBox HorizontalAlignment="Right" VerticalAlignment="Top" Width="250" Margin="0,15,0,0"/>

还添加空按钮以捕获搜索框的初始焦点,检查此答案

<Button Width="0" Height="0"/>

2-右键单击搜索框以编辑模板

模板

3- 在模板内,将 SearchBoxGrid 的宽度更改为 32,仅显示字形并将水平对齐设置为右。

在此处输入图像描述

4-在混合中选择状态选项卡,然后选择聚焦状态。

在此处输入图像描述

5- 再次将 SearchBoxGrid 网格的宽度设置为自动并将水平对齐设置为拉伸。

在此处输入图像描述

或在焦点状态下手动添加这些行

<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="SearchBoxGrid">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <x:Double>NaN</x:Double>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.HorizontalAlignment)" Storyboard.TargetName="SearchBoxGrid">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <HorizontalAlignment>Stretch</HorizontalAlignment>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>

6- 在焦点下拉状态下执行相同的 4 和 5 步。

于 2015-01-16T14:58:23.543 回答
1

将 SearchBox 添加到您的页面,然后在设计器中右键单击它并选择编辑模板。创建一个副本并根据需要设置其样式。

于 2013-08-05T07:05:21.673 回答