Windowsアプリケーション、WPF、XAML、C#でツールを作っているのですが、TextBlockに表示した文字を、FontDialogで変更したいです。
TextBoxに入力したテキストをTextBlockに表示、そしてFontDialogでTextBoxとtextBlockのフォントサイズやスタイルを変更する機能を実装したいと考えています。
TextBoxの文字はFontDialogで変更することが出来るのですが、同様のことをTextBlockでできないでしょうか?
一部省略していますが、以下が現在書いているコードです。
XAML
1 <Grid> 2 <TextBox x:Name="Text1" HorizontalAlignment="Left" Height="99" TextWrapping="Wrap" Text="名前" VerticalAlignment="Top" FontSize="18"/> 3 4 <ItemsControl ItemsSource="{Binding Text, 5 ElementName=Text1, Mode=OneWay}" > 6 <ItemsControl.ItemsPanel> 7 <ItemsPanelTemplate> 8 <StackPanel Orientation="Horizontal" 9 HorizontalAlignment="Center"/> 10 </ItemsPanelTemplate> 11 </ItemsControl.ItemsPanel> 12 <ItemsControl.ItemTemplate> 13 <DataTemplate> 14 <TextBlock x:Name="TextBlock1" Style="{Binding}" 15 Margin="5" Text="{Binding}"/> 16 </DataTemplate> 17 </ItemsControl.ItemTemplate> 18 </ItemsControl> 19 </Grid> 20 21<Button x:Name="FontSize" Content="Font" HorizontalAlignment="Left" Margin="609,341,0,0" VerticalAlignment="Top" Width="75" Click="FontSize_Click"/> 22
C#
1private void FontSize_Click(object sender, RoutedEventArgs e) 2 { 3 FontDialog fontDialog = new FontDialog(); 4 5 6 if (fontDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) 7 { 8 9 Text1.FontFamily = new FontFamily(fontDialog.Font.Name); 10 Text1.FontSize = fontDialog.Font.Size * 98.0 / 72.0; 11 Text1.FontWeight = fontDialog.Font.Bold ? FontWeights.Bold : FontWeights.Regular; 12 Text1.FontStyle = fontDialog.Font.Italic ? FontStyles.Italic : FontStyles.Normal; 13 14 15 TextBlock1.FontFamily = new FontFamily(fontDialog.Font.Name); 16 TextBlock1.FontSize = fontDialog.Font.Size * 98.0 / 72.0; 17 TextBlock1.FontWeight = fontDialog.Font.Bold ? FontWeights.Bold : FontWeights.Regular; 18 TextBlock1.FontStyle = fontDialog.Font.Italic ? FontStyles.Italic : FontStyles.Normal; 19 20 21 } 22 }
もし解決策をご存知の方がいましたら、ご協力お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/14 11:51