🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

2135閲覧

FontDialogのフォントサイズの変更値を維持したい

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2020/12/14 00:54

テキストボックスに入力した文字をテキストブロックに表示するツールを作成しています。
FontDialogでフォントのサイズやスタイルを設定できるようにしたのですが、
フォントサイズの変更値を維持してくれません。
(例えば、1回目にフォントサイズを24に設定しても、2回目にFontDialogを開いた時にはフォントサイズが初期設定に戻ってしまっている)
フォントサイズの変更値を維持するには、どうすればよいでしょうか?
一部省略していますが、以下が現在書いているコードです。

html

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"/>

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 TextBlock1.FontFamily = new FontFamily(fontDialog.Font.Name); 9 TextBlock1.FontSize = fontDialog.Font.Size * 98.0 / 72.0; 10 TextBlock1.FontWeight = fontDialog.Font.Bold ? FontWeights.Bold : FontWeights.Regular; 11 TextBlock1.FontStyle = fontDialog.Font.Italic ? FontStyles.Italic : FontStyles.Normal; 12 13 14 } 15 }

fontDialog.Font.Size=TextBlock1.FontSize とやれば変更値を維持できるかと思ったのですが、fontDialog.Font.Sizeは読み取り専用であるため、できませんでした。

もし解決策をご存知の方がいましたら、ご協力お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Fontをサイズ指定して生成して、
fontDialog.Fontに代入するテですね

って、最初にダイアログで出てきたFontを置いといて使いまわしすればいいかと

投稿2020/12/14 01:23

編集2020/12/14 01:25
y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/12/14 14:46

>最初にダイアログで出てきたFontを置いといて使いまわしすればいいかと 回答ありがとうございます。 FontDialog fontDialog = new FontDialog();を関数の外に出したら、変更値を維持することができるようになりました。大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問