XAML,ソースコードでツールチップを定義する

ちと必要に迫られて、WPFアプリケーションでツールチップを試してみました。
下図のような感じで、説明文の他、図や写真を含むツールチップを表示してみます。


その1) XAMLで記述してみる。
ツールチップを表示するコントロールのToolTipプロパティを以下のように指定する。

<Label Height="28" Margin="60,38,87,0" Name="label1" VerticalAlignment="Top" >

    <Label.ToolTip>

        <DockPanel >

            <StackPanel Orientation="Vertical">

                <TextBlock><Bold>ツールチップ</Bold></TextBlock>

                <TextBlock>コントロールの説明を表示します。<LineBreak/>図や写真を使うこともできます。</TextBlock>

                <Image Source="Images\graph.png" />

            </StackPanel>

        </DockPanel>

    </Label.ToolTip>

    XAMLでツールチップ

</Label>

 

意外と簡単というか、こんな簡単にツールチップを定義できる(XAMLってすげーっ!!)


その2) ソースコードを使ってツールチップを定義する

同じ処理をソースコードで行うと以下のような感じになる。
XAMLに比べると記述が長くなるのと、やっぱり直感的に表示されるツールチップのイメージがわかないですね。

// ツールチップ

System.Windows.Controls.ToolTip toolTip = new System.Windows.Controls.ToolTip();

 

// StackPanel

StackPanel stackPanel = new StackPanel();

stackPanel.Orientation = Orientation.Vertical;

 

// タイトル

TextBlock title = new TextBlock(new Run("ツールチップ"));

title.FontWeight = FontWeights.UltraBold;

stackPanel.Children.Add(title);

 

// 説明文

TextBlock description = new TextBlock();

description.Inlines.Add(new Run("コントロールの説明を表示します。"));

description.Inlines.Add(new LineBreak());

description.Inlines.Add(new Run("図や写真を使うこともできます。"));

stackPanel.Children.Add(description);

 

// イメージ

Image image = new Image();

image.Source = new BitmapImage(new Uri(@"Images\graph.png", UriKind.RelativeOrAbsolute));

stackPanel.Children.Add(image);

 

// DocPanel

DockPanel docPanel = new DockPanel();

docPanel.Children.Add(stackPanel);

toolTip.Content = docPanel;

 

// ラベルにツールチップを設定する

lbl2.ToolTip = toolTip;

          


コメント

このブログの人気の投稿

TabError: inconsistent use of tabs and spaces in indentation

ディスプレイ ドライバーの応答停止と回復

マクロを含んだ.XLSがExcel2010で開けない