У меня есть две радиокнопки, для работы которых мне нужно стилизованное всплывающее окно и добавление 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>