簡體   English   中英

WPF筆刷顏色從win10到win8平板的變化

[英]WPF brush color changes from win10 to win8 tablet

我有一個在 Windows 10 上開發的 wpf 應用程序,我現在在 x86 Windows 8 平板電腦上嘗試過。

在平板電腦中運行時,某些前景色顯示不同(特別是黑色變為藍色,白色變為黃色)。

更改出現在文本塊、標簽、按鈕內容文本和數據網格標題上。

另一方面, "Red"或任何其他不是很暗或很亮的十六進制顏色將按預期顯示。

再說一次,我在那里有一些Canvas元素,它們的填充畫筆定義為黑色或白色,並且它們可以正確渲染。

測試用例:

<Window Background="#FF808080">
<Grid Margin="10">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <!-- labels -->
    <StackPanel Orientation="Vertical" Grid.Column="0">
        <StackPanel.Resources>
            <Style TargetType="Label">
                <Setter Property="FontSize" Value="30"/>
            </Style>
        </StackPanel.Resources>
        <Label Foreground="Black">Black</Label>
        <Label Foreground="Red">Red</Label>
        <Label Foreground="White">White</Label>
    </StackPanel>
    <!-- graphics -->
    <StackPanel Orientation="Vertical" Grid.Column="1" Margin="10 0 0 0">
        <Ellipse Width="100" Height="100" Fill="Black"/>
        <Ellipse Width="100" Height="100" Fill="Red"/>
        <Ellipse Width="100" Height="100" Fill="White"/>
    </StackPanel>
</Grid>
</Window>

平板電腦 win8 和桌面 win10 的屏幕截圖(按此順序): http ://imgur.com/a/1WJRI

解決方案

通過RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;強制窗口使用軟件渲染RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;

現在下一個問題是為什么 GPU 加速渲染會影響文本顏色,以及如何具體更改此顏色。 我的應用程序不是圖形密集型的,所以我現在只啟用 sw 渲染並完成此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM