Почему мой Popup в стиле с включенным TooltipService работает неправильно? - PullRequest
1 голос
/ 12 августа 2011

У меня есть две радиокнопки, для работы которых мне нужно стилизованное всплывающее окно и добавление ToolTipService к одной, фиксирует функциональность Popup на обеих (у каждого свой стиль).

Итак, описание. Я скопировал / вставил всплывающее окно, которое мы используем в другом месте проекта (также для другого типа стиля переключателя), и вставил их в стили для кнопок, над которыми я сейчас работаю. Теперь я могу быть уверен, что всплывающее окно работает там, где оно есть в настоящее время, потому что, если я добавлю всплывающую подсказку к границам, определенным в стиле, это исправит функциональность. (также, если я уберу всплывающие теги и оставлю их в виде сетки, они тоже будут отображаться).

Самое простое решение, которое я могу придумать, это спросить об этом. Есть ли способ сделать ToolTipService невидимым / свернутым, чтобы включить исправление?

Если не считать код, с которым я работаю, и, возможно, кто-то может ответить на реальный вопрос. Он был нарезан для вашего удовольствия от просмотра

<Style x:Key="VisualViewRadioButtonLeftStyle" TargetType="RadioButton" BasedOn="{StaticResource BaseLRRadioButtonStyle}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="RadioButton">
                <Grid>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="MouseOver">
                                <Storyboard>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="grid">
                                        <EasingDoubleKeyFrame KeyTime="0:0:.3" Value="0"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:.5" Value="1"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:3" Value="1"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.4" Value="0"/>
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid>
                        <Border x:Name="Normal1" >
                            <Image Source="picture" Style="{StaticResource VisualViewRadioButtonImageStyle}" />
                        </Border>
                    </Grid>
                    <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="1" Visibility="Collapsed" />
                    <Popup Opacity="0" IsOpen="True" IsHitTestVisible="False" >
                        <Grid x:Name="grid"  Opacity="0" IsHitTestVisible="False" >
                            <Path x:Name="path2" IsHitTestVisible="False"  Data="M1.9999998,3.9790393E-13" UseLayoutRounding="False" >
                            </Path>
                            <TextBlock Text="Chart" IsHitTestVisible="False" />
                        </Grid>
                    </Popup>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Если бы я добавил ToolTipService к границе с именем «Normal1», он бы исправил и эту кнопку, и стиль под ней (они расположены рядом друг с другом).

Я также попытался изменить положение, в котором я определяю всплывающее окно.

Затем две переключатели добавляются в панель стека для их отображения. Небольшая секция кода ниже.

<Grid>
    <StackPanel>
        <RadioButton GroupName="Tabs" x:Name="TopContent1" Style="{StaticResource VisualViewRadioButtonLeftStyle}" />
        <RadioButton GroupName="Tabs" x:Name="TopContent2List" Style="{StaticResource VisualViewRadioButtonRightStyle}" />
    </StackPanel>

    <ContentPresenter x:Name="HeaderContent" Content="{Binding MainContentTopSelected}"/>

</Grid>
...