짧은 이야기 : ListBox에 여러 차트를 표시하는 창이 있습니다. mouseOver 차트의 경우 (LineSeries 사용) dataPoints를 따르는 선이 있습니다 (dataPoint 위치에 스냅). 그 라인 근처에서 나는 그 dataPoints에 관한 정보를 보여주는 팝업에서 만들어진 툴팁을 보여줄 것입니다.WPF "툴팁"팝업 깜박임
지금까지 너무 좋아. 문제는 마우스를 툴팁 위로 이동하려고 할 때 팝업이 깜박 거리기 시작하는 것입니다 (예 : 열기/닫기 루프). 이미 팝업창과 어린이들에게 설정했습니다 IsHitTestVisible="False"
.
을 ...하지만 거의 "이해할 수"입니다 : 임시 솔루션 팝업으로
여기처럼 커서의 길에서 "간다".
이제 질문이 생깁니다. 무엇이 잘못 되었습니까? 마우스가 위에있을 때 팝업이 깜박 거리는 이유는 무엇입니까?
모든 의견 환영
PS. XAML 도구 팁 (코드로 생성되었지만 여기에 있습니다.) :
차트의 datacontext는 클래스에 바인딩 된 데이터이고 일부 차트 이벤트는 icommands를 통해 구현됩니다. 팝업은 팝업의 아이가 작성되는 MouseMoveCommand에 ..., 그 클래스의 생성자에서
ppchart = New Popup() With {.AllowsTransparency = True, .IsHitTestVisible = False,.StaysOpen = True}
을 만들어 :
Dim ppCont As XElement = <Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" IsHitTestVisible="False" VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle Opacity="0.5" Grid.RowSpan="2" IsHitTestVisible="False" StrokeThickness="0" RadiusX="2" RadiusY="2" Fill="#FFBABABA"/>
<TextBlock Text="{Binding Over, StringFormat=HH:mm}" FontSize="9" TextAlignment="Center" FontFamily="Segoe UI" IsHitTestVisible="False" Margin="1"/>
<ListBox x:Name="listBox" ItemsSource="{Binding Points}" Background="{x:Null}" BorderBrush="{x:Null}" FontSize="8" Margin="1,0,1,1" Grid.Row="1" IsHitTestVisible="False" IsTextSearchEnabled="False" HorizontalAlignment="Stretch">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid IsHitTestVisible="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Rectangle Fill="{Binding Culoare}" Width="3" HorizontalAlignment="Left" Margin="1" IsHitTestVisible="False"/>
<TextBlock Text="{Binding Operation}" HorizontalAlignment="Stretch" IsHitTestVisible="False" Grid.ColumnSpan="1" Grid.Column="1"/>
<TextBlock Text="{Binding points.Value}" HorizontalAlignment="Stretch" Grid.Column="2" TextAlignment="Right" IsHitTestVisible="False"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
ppchart.Effect = New Effects.DropShadowEffect() With {.Opacity = 0.5, .BlurRadius = 5, .Direction = 80, .Color = Colors.Black}
ppchart.Child = CType(XamlReader.Load(New XmlTextReader(New StringReader(ppCont.ToString))), UIElement)
는 재 편집 : 이것은
같은 모습입니다
툴팁에 사용 된 XAML을 게시 할 수 있습니까? – Dennis
왜 IsHitTestVisible을 설정하고 있습니까? 너는 그것없이 시도 했니? –
처음으로 설정하지 않고 시도했지만 깜박 거 렸습니다. –