Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有多个内容属性的工具提示控件_C#_Silverlight_Xaml_Tooltip_Styling - Fatal编程技术网

C# 具有多个内容属性的工具提示控件

C# 具有多个内容属性的工具提示控件,c#,silverlight,xaml,tooltip,styling,C#,Silverlight,Xaml,Tooltip,Styling,我正在用SilverLight 5设计自己的工具提示,需要在显示时向它传递几个值 风格如下: <Style x:Key="TooltipStyle" TargetType="ToolTip"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ToolTip">

我正在用SilverLight 5设计自己的工具提示,需要在显示时向它传递几个值

风格如下:

   <Style x:Key="TooltipStyle" TargetType="ToolTip">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToolTip">
                    <Border BorderBrush="Blue" BorderThickness="2" Background="White">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>

                            <StackPanel Orientation="Horizontal">

                                <TextBlock Text="Var Number: "></TextBlock>

                                <ContentPresenter x:Name="Content1"
                                              Content="{TemplateBinding Content}" 
                                              HorizontalAlignment="Center" 
                                              VerticalAlignment="Center"/>
                            </StackPanel>

                            <StackPanel Grid.Row="1">
                                <TextBlock Text="Last Update Date: " />

                                <ContentPresenter x:Name="Content2"
                                                  Content="{TemplateBinding Content}" 
                                                  HorizontalAlignment="Center" 
                                                  VerticalAlignment="Center"/>

                            </StackPanel>
                        </Grid>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
那里只有一个“Content”属性,但我还需要将某些内容传递给“Content2”。(请注意,内容是在我们执行“for”循环时收集的。)

因此,出现的图像不是只有一个变量,而是可以有Var编号和上次更新日期。声誉太低,无法发布图像,以下是工具提示的最终外观,让您了解:

情况就是这样

现在我想知道是否可以公开第二个内容属性?或者也许有一种更聪明、更好的方式来设计工具提示,以满足我的需要

请注意,此示例需要显示两个值(或“内容”),但工具提示将扩展为需要更多值


我会很感激你的任何想法。

所以,为了让你更容易,我个人只需要利用已经为这类事情提供的东西。例如,使用
标记
将这类内容复制到模板中

一个例子(添加了一些setter和您可能想省略或更改的内容),如


这样,您只需将一个值传递给
Content
,将另一个值传递给
Tag
,就可以了。你也可以轻松地做其他事情,有多种选择。希望这有帮助,干杯

                    var customTooltip = new ToolTip
                    {
                        Style = (Style)Resources["TooltipStyle"],
                        Content = questions.Number[c]
                    };

                    ToolTipService.SetToolTip(textbox, customTooltip);
<Style x:Key="NiftyToolTipStyle" TargetType="ToolTip">
        <Setter Property="FontFamily" Value="{StaticResource FontFamily}" />
        <Setter Property="FontSize" Value="{StaticResource FontSize}" />
        <Setter Property="Foreground" Value="Black" />
        <Setter Property="Background" Value="White" />
        <Setter Property="Padding" Value="3" />
        <Setter Property="BorderThickness" Value="1,2" />
        <Setter Property="BorderBrush" Value="Blue" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToolTip">
                    <Border x:Name="Root"
                            Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            CornerRadius="1"
                            Padding="{TemplateBinding Padding}"
                            Cursor="{TemplateBinding Cursor}">
                            <Border.Effect>
                                <DropShadowEffect Opacity="0.35" ShadowDepth="3" />
                            </Border.Effect>
                            <TextBlock>
                                 <Run Text="{TemplateBinding Tag, StringFormat='Var Number: \{\0}'}"/>
                                 <LineBreak/>
                                 <Run Text="{TemplateBinding Content, StringFormat='Last Update Date: \{\0}'}"/>
                            </TextBlock>
                            <!--
                            <ContentPresenter Margin="{TemplateBinding Padding}"
                                              Content="{TemplateBinding Content}"
                                              ContentTemplate="{TemplateBinding ContentTemplate}"
                                              Cursor="{TemplateBinding Cursor}" />
                            -->
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>        
    </Style>