Ich habe ein Problem, die Deckkraft in WPF zu verstehen. Ich habe den Code unten veröffentlicht. Meine Fragen sind:Unvorhersehbares Opazitätsverhalten in WPF-Schriftarten
- Warum erhalten das Rechteck und die Schriftart unterschiedliche Farben?
- Warum erhalten beide TextBlocks unterschiedliche Farben, wenn ich die Schriftgröße ändere?
Ich würde erwarten, dass, wenn ich die Farbe mit einer Farbauswahl, schwarz mit einer Opazität mit 50% Schnüffler machen würde # 7F7F7F, sondern ich # C2C2C2 für den kleineren Textblock zu erhalten, und die # 7F7F7F erwartet die größere Schrift und das Rechteck.
Frage wurde teilweise bei https://github.com/ButchersBoy/MaterialDesignInXamlToolkit/issues/408 gestellt, aber nicht richtig beantwortet.
Jede Hilfe wird geschätzt!
Der Code ist:
<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>
Ich bin mir nicht sicher, warum es passiert, aber Ich kann die Farbänderungen bei FontSize = 80 auf meinem Computer überprüfen. –
Nach https://support.microsoft.com/nl-be/help/2712383/wpf-application-hangs-when-fonts-over-100pts-in-size, Net 3.5 hat Schwierigkeiten mit fonsizes von 100 und größer (insbesondere, wenn 100 Punkte nach den Transformationen, dpi-Einstellungen usw.). Vielleicht gibt es noch einen "übrig gebliebenen" Fehler in Bezug auf Deckkraft und Schriftgrößen von 100 Punkten und mehr. – Xilconic