为什么ClearType部分不能使用透明窗口?

时间:2014-12-19 14:11:30

标签: c# wpf windows xaml transparency

我有一个透明的Window可以正常工作,但TextBox会忽略ClearType

设置RenderOptions.ClearTypeHint="Enabled"但没有任何反应。没有其他效果,OpacityMask,VisualBrush,DrawingBrush,Clip或Opacity仅AllowsTransparency="True"AllowsTransparency="True"

AllowsTransparency = “真”

enter image description here

普通窗口上的AllowTransparency =“False”

enter image description here

Xaml样本

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="200"
        Width="300"
        Title="MainWindow"
        AllowsTransparency="True"
        WindowStyle="None">

  <Window.Template>
    <ControlTemplate>

      <Grid Background="White"
            Height="200"
            Width="300"
            RenderOptions.ClearTypeHint="Enabled"
            TextOptions.TextRenderingMode="ClearType"
            TextOptions.TextFormattingMode="Display">

        <StackPanel VerticalAlignment="Center"
                    HorizontalAlignment="Center">
          <Label>Lorem Ipsum Test</Label>
          <TextBlock>Lorem Ipsum Test</TextBlock>
          <TextBox Text="Lorem Ipsum"
                   Background="White" />
        </StackPanel>
      </Grid>

    </ControlTemplate>
  </Window.Template>

</Window>

有什么建议吗?这是一个无法解决的已知问题吗?

更新

使用Snoop我看到TextBoxLineDrawingVisual,这可能会导致问题?

enter image description here

1 个答案:

答案 0 :(得分:0)

那是因为网格附加了文本的属性,例如&#34; RenderingMode&#34;内部实施以应用&#34; textblock&#34;不是&#34;文本框&#34;儿童元素。