C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[11]: ツールヒントのフォントサイズ


(過去ログ 123 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■73401 / inTopicNo.1)  ツールヒントのフォントサイズ
  
□投稿者/ ryu (1回)-(2014/09/21(Sun) 22:31:44)

分類:[XML] 

.net 4.5 c# xaml で開発をしています。 スタイルのことで質問です。

画像にツールヒントをつける場合、
<Image souce="{Biding hoge}" ToolTipService.ToolTip="fuga">
という風に書いているのですが、このとき、このツールヒントのフォントサイズを変えたい場合はどうすると良いのでしょうか?

yahoo知恵袋でも質問しましたが、回答を得れませんでした。よろしくお願いします。
引用返信 編集キー/
■73402 / inTopicNo.2)  Re[1]: ツールヒントのフォントサイズ
□投稿者/ Hongliang (234回)-(2014/09/22(Mon) 06:07:35)
ToolTipService.ToolTip添付プロパティはobject型なので、フォントサイズを指定したTextBlockを指定してやれば良いのでは。
<Image ...>
  <ToolTipService.ToolTip>
    <TextBlock FontSize="24">test</TextBlock>
  </ToolTipService.ToolTip>
</Image>

引用返信 編集キー/
■73403 / inTopicNo.3)  Re[2]: ツールヒントのフォントサイズ
□投稿者/ ryu (2回)-(2014/09/22(Mon) 08:53:10)
No73402 (Hongliang さん) に返信
> ToolTipService.ToolTip添付プロパティはobject型なので、フォントサイズを指定したTextBlockを指定してやれば良いのでは。
> <Image ...>
> <ToolTipService.ToolTip>
> <TextBlock FontSize="24">test</TextBlock>
> </ToolTipService.ToolTip>
> </Image>

お早いご返答ありがとうございました。
<Image ...>
<ToolTipService.ToolTip>
<TextBlock FontSize="24" Text="{Binding fuga}"/>
</ToolTipService.ToolTip>
</Image>
で対応できました。


ここで追加の質問です。

現在、fontsizeなどのプロパティの値はリソースファイルで管理しています。
TextBlockもリソースファイルでfontsizeを指定しており、正常に反映されているのを確認しているのですが、
今回のTextBlockには反映されませんでした。
これはなぜでしょうか?
また、解決策があればご教授下さい。
※無理なら直書きのままで対応しますが。
引用返信 編集キー/
■73426 / inTopicNo.4)  Re[3]: ツールヒントのフォントサイズ
□投稿者/ _ (1回)-(2014/09/25(Thu) 13:53:03)
No73403 (ryu さん) に返信
>
>
> ここで追加の質問です。
>
> 現在、fontsizeなどのプロパティの値はリソースファイルで管理しています。
> TextBlockもリソースファイルでfontsizeを指定しており、正常に反映されているのを確認しているのですが、
> 今回のTextBlockには反映されませんでした。
> これはなぜでしょうか?
> また、解決策があればご教授下さい。
> ※無理なら直書きのままで対応しますが。
Sytleの指定をしていれば反映されると思いますが。。。
引用返信 編集キー/
■73461 / inTopicNo.5)  Re[4]: ツールヒントのフォントサイズ
□投稿者/ ryu (3回)-(2014/09/27(Sat) 23:31:31)
> Sytleの指定をしていれば反映されると思いますが。。。

<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="{Binding hoge}"/>
</Style>

のように指定していて、

そのリソースファイルを読むように指定してあるxamlには、

<TextBlock .../>

<Image ...>
<ToolTipService.ToolTip>
<TextBlock Text="{Binding fuga}"/>
</ToolTipService.ToolTip>
</Image>

のように記述しています。
このとき、通常のTextBlockには反映されるのですが、ツールチップには反映されません。。。
引用返信 編集キー/
■73462 / inTopicNo.6)  Re[5]: ツールヒントのフォントサイズ
□投稿者/ Hongliang (236回)-(2014/09/28(Sun) 10:55:54)
> そのリソースファイルを読むように指定してあるxamlには、
ということは、app.xamlではなくPageやWindow単位のxamlにてリソースファイルを読み込んでいるんですね?

http://msdn.microsoft.com/ja-jp/library/ms750613.aspx
にリソースの検索ロジックの記述がありますが、自身のリソースが空の場合論理ツリーの親要素を検索しに行きます。ルートまで見つからなかったら、アプリケーションリソースを探します。
しかし、ツールチップやコンテキストメニューなど新しいウィンドウを開くものについては、そこでツリーが独立することになります。
ですので、ツールチップはリソースを見つけられていないんじゃないでしょうか。推測ですが。
引用返信 編集キー/
■73463 / inTopicNo.7)  Re[6]: ツールヒントのフォントサイズ
□投稿者/ ryu (4回)-(2014/09/28(Sun) 15:35:30)
No73462 (Hongliang さん) に返信
>>そのリソースファイルを読むように指定してあるxamlには、
> ということは、app.xamlではなくPageやWindow単位のxamlにてリソースファイルを読み込んでいるんですね?
はい、お察しのとおりです。

> http://msdn.microsoft.com/ja-jp/library/ms750613.aspx
> にリソースの検索ロジックの記述がありますが、自身のリソースが空の場合論理ツリーの親要素を検索しに行きます。ルートまで見つからなかったら、アプリケーションリソースを探します。
> しかし、ツールチップやコンテキストメニューなど新しいウィンドウを開くものについては、そこでツリーが独立することになります。
> ですので、ツールチップはリソースを見つけられていないんじゃないでしょうか。推測ですが。
なるほど。その場合、どのように指定してやればいいのでしょうか?
リソースファイルで
<Style TargetType="Image">
<Setter Property="ToolTipService">
...
</Setter>
</Style>
の、ような記述になるのでしょうか?
だとしても「...」がわからないのですが。。。
引用返信 編集キー/
■73475 / inTopicNo.8)  Re[7]: ツールヒントのフォントサイズ
□投稿者/ Hongliang (238回)-(2014/09/30(Tue) 13:31:44)
> リソースファイルで
> <Style TargetType="Image">
> <Setter Property="ToolTipService">
> ...
> </Setter>
> </Style>
> の、ような記述になるのでしょうか?
> だとしても「...」がわからないのですが。。。

ToolTipServiceはクラスであってPropertyではありませんし、
なにより以前述べたとおりそもそもリソースが見つかっていないので
リソースファイル自体参照されていません。

試してないですが、まあ思いつくのは
ToolTipService.ToolTipの子要素(TextBlock)で改めてリソースファイルを参照するとか、
Styleの設定をapp.xaml(のマージリソースディクショナリ)に移動させるとか、
その辺はどうでしょうか。
引用返信 編集キー/
■73500 / inTopicNo.9)  Re[8]: ツールヒントのフォントサイズ
□投稿者/ ryu (5回)-(2014/10/02(Thu) 08:07:54)
No73475 (Hongliang さん) に返信
> 試してないですが、まあ思いつくのは
> ToolTipService.ToolTipの子要素(TextBlock)で改めてリソースファイルを参照するとか、
> Styleの設定をapp.xaml(のマージリソースディクショナリ)に移動させるとか、
> その辺はどうでしょうか。

設計上の理由でapp.xamlには置けません。改めてリソースファイルを参照を試してみましたが、
どうにもやり方があっていないのか、出来ませんでした。
<TextBlock ...
Resource="{StaticResource リソースディクショナリ名}"/>
という形でしょうか?
リソースディクショナリ名は、ResourceDictionaryでつけた名前です。
引用返信 編集キー/
■73503 / inTopicNo.10)  Re[9]: ツールヒントのフォントサイズ
□投稿者/ _ (2回)-(2014/10/02(Thu) 13:09:07)
No73500 (ryu さん) に返信
<Image ...>
<ToolTipService.ToolTip>
<TextBlock Style="{StaticResource tbStyle}" Text="{Binding fuga}"/>
</ToolTipService.ToolTip>
</Image>

<Style :Key="tbStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="33"/>
...
</Style>

引用返信 編集キー/
■73511 / inTopicNo.11)  Re[10]: ツールヒントのフォントサイズ
□投稿者/ ryu (6回)-(2014/10/04(Sat) 12:04:09)
No73503 (_ さん) に返信
> ■No73500 (ryu さん) に返信
> <Image ...>
> <ToolTipService.ToolTip>
> <TextBlock Style="{StaticResource tbStyle}" Text="{Binding fuga}"/>
> </ToolTipService.ToolTip>
> </Image>
>
> <Style :Key="tbStyle" TargetType="TextBlock">
> <Setter Property="FontSize" Value="33"/>
> ...
> </Style>

Hongliangさん、_さん、ありがとうございます。
当初の目標は果たせました!

実はもう一箇所、関連して問題になっているのが、
諸事情により、上記の指定をcsファイルで指定しなければいけなくなり、
ToolTipService.SetToolTip(hoge, new TextBlock()
{
Text = hoge,
Style = ???
});
と、いう記述を考えました。
 ※スタイルの指定を除けば、上記の記述で表示されました。
csでの指定は、Appに書いてあれば、
(Style)App.Current.Resources["KeyName"]
というふうな記述で指定できるというのを見つけたのですが、
ためしにAppにStyleの指定をコピペしても反映されませんでした。
また、本来の目的はResourceDictionary型のファイルへの参照です。
今一度お知恵をお借りできれば幸いです。
引用返信 編集キー/
■73521 / inTopicNo.12)  Re[11]: ツールヒントのフォントサイズ
□投稿者/ ryu (7回)-(2014/10/06(Mon) 18:38:07)
2014/10/06(Mon) 18:38:50 編集(投稿者)
2014/10/06(Mon) 18:38:43 編集(投稿者)

質問しておいて自己解決しました。

ソース貼っておきます。
var uriTypeConverter = new UriTypeConverter();
var uri = (uri)uriTypeConverter.ConvertFrom("xamlで指定していた、リソースファイルのパス");
var resource = new ResourceDictionary();
resource.Source = uri;

ToolTipService.SetToolTip(huga, new TextBlock()
{
Text = hoge,
Style = (Style)resource["ツールチップ用スタイルのキー"]
});

改めて、Hongliangさん、_さん、ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -