【问题标题】:Callout style popup in WPFWPF 中的标注样式弹出窗口
【发布时间】:2019-02-22 10:10:03
【问题描述】:

在我的 WPF 应用程序中,我试图实现一个标注样式的弹出窗口。 我得到了一些参考,但仍然是一个很好的解决方案。

请找到我想要实现的图像。 它应该是一个弹出窗口。初始位置应指示父按钮。但由于它是一个窗口,所以可以从它的位置拖动。

请指导我。 谢谢。

【问题讨论】:

  • 您是在使用特定的特定组件或工具,还是在尝试创建自己的样式?
  • 我正计划创建自己的风格,因为我找不到任何合适的工具。如果您觉得有帮助,请推荐。
  • 当然!试试看Microsoft.Expression.Drawing。也许它可以适合您的目的。

标签: c# wpf callouts calloutview


【解决方案1】:

你可以使用Path:

<ToggleButton x:Name="toggleButton" Content="Button" Margin="100" />

<Popup IsOpen="{Binding IsChecked, ElementName=toggleButton}" 
               PlacementTarget="{Binding ElementName=toggleButton}"
               Placement="Right"
               StaysOpen="False"
               AllowsTransparency="True"
               VerticalOffset="-90">
    <Grid>
        <Border Background="Blue" BorderThickness="1" BorderBrush="Black"
                Width="200" Height="200" Margin="24,0,0,0">
            <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White">...</TextBlock>
        </Border>
        <Path StrokeThickness="1" Stroke="Black" Fill="Blue" VerticalAlignment="Center">
            <Path.Data>
                <PathGeometry>
                    <PathFigure StartPoint="25,0">
                        <PolyLineSegment Points="0,25 25,50"/>
                        <LineSegment Point="25,0" IsStroked="False"/>
                    </PathFigure>
                </PathGeometry>
            </Path.Data>
        </Path>
    </Grid>
</Popup>

【讨论】:

  • 对不起,我最初的问题不够清楚。所以我已经添加了。
【解决方案2】:

这应该会给你一个大致的开始方向:

     <Button>
         <Button.ToolTip>
            <ToolTip Placement="Right">
                <ToolTip.Style>
                    <Style TargetType="ToolTip">
                        <Setter Property="Background" Value="SkyBlue"/>
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type ToolTip}">
                                    <Grid>
                                        <Polygon Points="10,0 0,5, 10,10" Fill="{TemplateBinding Background}" VerticalAlignment="Center"/>
                                        <Border Margin="10,0,0,0" CornerRadius="5" Background="{TemplateBinding Background}" Name="button" Width="100">
                                            <TextBlock>
                                                    <Run>This</Run>
                                                    <LineBreak/>
                                                    <Run>is</Run>
                                                    <LineBreak/>
                                                    <Run>an</Run>
                                                    <LineBreak/>
                                                    <Run> avesome tooltip</Run>
                                            </TextBlock>
                                        </Border>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </ToolTip.Style>
            </ToolTip>
        </Button.ToolTip>
    </Button>

【讨论】:

  • 对不起,我最初的问题不够清楚。所以我已经添加了。
猜你喜欢
  • 1970-01-01
  • 2012-07-15
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 2020-04-17
相关资源
最近更新 更多