【问题标题】:How can I use a non-SolidColor brush for WinRT xaml TextBox foreground color?如何为 WinRT xaml TextBox 前景色使用非 SolidColor 画笔?
【发布时间】:2014-02-23 20:50:18
【问题描述】:

我正在尝试设置 TextBox 的样式,以便使用图像画笔呈现文本,但我似乎无法让它工作。

鉴于以下 sn-p,我可以将文本设置为使用纯色画笔渲染。但是,如果我尝试使用其中一个被注释掉的画笔(LinearGrad 或 ImageBrush),它只会呈现为纯黑色文本。

        <TextBox Text="test" Background="{x:Null}" FontSize="64">
            <TextBox.Foreground>
                <SolidColorBrush Color="Plum"/>

                <!--<LinearGradientBrush StartPoint="0 0" EndPoint="1 0">
                    <GradientStop Color="White"/>
                    <GradientStop Color="Black" Offset="1"/>
                </LinearGradientBrush>-->
                <!--<ImageBrush ImageSource="ms-appx:/Assets/Texture.png"/>-->
            </TextBox.Foreground>

        </TextBox>

我可以做同样的事情来设置 TextBlock 的样式,但它似乎不适用于 TextBox。有什么我想念的吗?该文档没有提及任何限制或例外:MSDN Docs

需要明确的是,这不是 WPF 问题。我知道这在 WPF 中有效,这是一个 Windows 8 应用程序 (WinRT)。

【问题讨论】:

    标签: xaml windows-runtime


    【解决方案1】:

    根据我的测试,这似乎是一个未记录且不受支持的场景。如果您确实需要这样做 - 您可以创建 TextBox 的自定义模板,当控件未使用时显示 TextBlock 并将 TextBlock.Foreground 和其他属性模板绑定到相应的 TextBox属性。

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 1970-01-01
      • 2011-03-19
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多