J'ai un problème de compréhension de l'opacité dans WPF. J'ai le code posté ci-dessous. Mes questions sont:Comportement d'opacité imprévisible dans les polices WPF
- Pourquoi le rectangle et la police ont-ils des couleurs différentes?
- Pourquoi les deux TextBlocks ont-ils des couleurs différentes lorsque je change la taille de la police?
j'attendre à ce que, quand je snoop la couleur avec un sélecteur de couleur, noir avec une opacité de 50% viderait # 7F7F7F, mais je reçois # C2C2C2 pour le TextBlock plus petit, et le # 7F7F7F prévu pour la plus grande police et le rectangle.
La question a été partiellement posée au https://github.com/ButchersBoy/MaterialDesignInXamlToolkit/issues/408 mais n'a pas reçu de réponse appropriée.
Toute aide est appréciée!
Le code est:
<Window x:Class="WpfPlay.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfPlay"
mc:Ignorable="d"
Title="MainWindow" Height="800" Width="800" Background="White">
<Window.Resources>
<SolidColorBrush x:Key="ForeBrush" Color="Black" Opacity="0.5"/>
<SolidColorBrush x:Key="BackBrush" Color="White" Opacity="1.0"/>
<Style TargetType="TextBlock" x:Key="TextBlockStyle">
<Setter Property="Foreground" Value="{StaticResource ForeBrush}"/>
<Setter Property="Background" Value="{StaticResource BackBrush}"/>
<Setter Property="FontSize" Value="48"/>
<Setter Property="FontWeight" Value="Bold"/>
</Style>
<Style TargetType="TextBlock" x:Key="TextBlockLargeStyle">
<Setter Property="Foreground" Value="{StaticResource ForeBrush}"/>
<Setter Property="Background" Value="{StaticResource BackBrush}"/>
<Setter Property="FontSize" Value="100"/>
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</Window.Resources>
<StackPanel Orientation="Vertical" Background="White">
<TextBlock Text="Click me" HorizontalAlignment="Center" Style="{StaticResource TextBlockStyle}" Margin="20"/>
<TextBlock Text="Click me" HorizontalAlignment="Center" Style="{StaticResource TextBlockLargeStyle}" Margin="20"/>
<Rectangle Width="100" Height="100" HorizontalAlignment="Center" Margin="20" Fill="{StaticResource ForeBrush}"/>
</StackPanel>
</Window>
Je ne sais pas pourquoi cela arrive, mais Je peux vérifier les changements de couleur à FontSize = 80 sur mon ordinateur. –
Selon https://support.microsoft.com/nl-be/help/2712383/wpf-application-hangs-when-using-fonts-over-100pts-in-size, Net 3.5 rencontre des difficultés avec des fonsizes de 100 et plus grand (spécifiquement, quand 100pts après des transformations, des arrangements de ppp etc.). Peut-être y a-t-il encore un bug "restes" concernant l'opacité et les polices de caractères de 100 points et plus. – Xilconic