【问题标题】:Customize expander - UWP App自定义扩展器 - UWP 应用
【发布时间】:2017-10-31 18:08:54
【问题描述】:

我有一个 UWP 应用(在 Windows/Microsoft Store 中发布),我想添加一个基于 UWP 社区工具包示例应用的扩展器,但想对其进行自定义。 我有这个代码:

<controlsToolkit:Expander x:Name="Expander1"
                          Margin="0,0,0,10" 
                          Header="Details"
                          IsExpanded="False"
                          ExpandDirection="Down"
                          RelativePanel.AlignHorizontalCenterWithPanel="True"
                          RelativePanel.AlignVerticalCenterWithPanel="True"
                          Foreground="Gray"
                          BorderThickness="2">
    <controlsToolkit:Expander.BorderBrush>
        <SolidColorBrush Color="Gray" Opacity="0.4"/>
    </controlsToolkit:Expander.BorderBrush>
        <TextBlock HorizontalAlignment="Center"
                   TextWrapping="Wrap"
                   Text="Details Example"
                   VerticalAlignment="Center"/>
</controlsToolkit:Expander>

我希望扩展按钮有一个灰色边框,但我不知道为什么该边框没有出现:

当我点击我的扩展器时,我希望背景变灰而不是这个蓝色,但我不知道该怎么做:

【问题讨论】:

    标签: xaml uwp uwp-xaml windows-community-toolkit


    【解决方案1】:

    看起来 Expander 不支持 BorderBrush 或 BorderThicknes 样式。我提交了an issuea PR 来解决这个问题。

    控件将尊重 Background 属性并将其应用于 Header 和 Content。但是,用于 Header 的 ToggleButton 确实具有在选中(也称为展开)时应用系统颜色(强调色)的样式。

    您可以通过向扩展器添加资源来修改标题颜色

    <controls:Expander.Resources>
        <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Red"/>
    </controls:Expander.Resources>
    

    或者您可以重新设置控件的样式以更改 ToggleButton 样式以在选中时不更改背景颜色

    【讨论】:

    • 我不能像在我的代码中那样在扩展器按钮上设置边框?
    • 该工具包的最新开发版本现在确实允许这样做。您可以拉入开发版本(有风险),也可以直接用边框包裹扩展器。
    • 但我的应用程序中没有出现边框,我正在使用此代码:... BorderThickness="2"&gt; &lt;controlsToolkit:Expander.BorderBrush&gt; &lt;SolidColorBrush Color="Gray" Opacity="0.4"/&gt; &lt;/controlsToolkit:Expander.BorderBrush&gt;
    • Wrap the Expander with a Border 是指用 Border 控件包裹 Expander。 &lt;Border BorderThickness="2" BorderBrush="Gray"&gt;&lt;Expander/&gt;&lt;/Border&gt;
    • 但我想要Opacity="0.4"的边框
    【解决方案2】:

    查看扩展器控件模板,将其添加到您的页面/应用资源并进行调整。 https://github.com/Microsoft/UWPCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI.Controls/Expander/Expander.xaml

    我很快就会看看你面临的问题。

    【讨论】:

    • 我一直在将代码复制到 UWP 社区工具包示例应用程序并以此为基础!我只是编辑了代码并以我的方式对其进行了自定义,这就是我想要的!我想在它周围加一个灰色边框,但我不能!
    • @shawn 为此提交了一个问题 - github.com/Microsoft/UWPCommunityToolkit/issues/1583。你能创造一个复制品吗?
    猜你喜欢
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多