質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
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回答

1883閲覧

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

Grayi

総合スコア26

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

総合スコア87749

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

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

Grayi

2020/12/14 14:46

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問