RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 746754
Accepted
Alexandr
Alexandr
Asked:2020-11-19 23:46:42 +0000 UTC2020-11-19 23:46:42 +0000 UTC 2020-11-19 23:46:42 +0000 UTC

当 ItemsSource 为空时图表的 WPF 工具包外观

  • 772

问题是这样的:当还Chart没有数据时,它看起来像这样 初次登场的样子

但是,如果你画一个图表并清除它,它会变成这样

在此处输入图像描述

XAML 图表

        <!--Chart column-->
    <chartingToolkit:Chart Grid.Row="1"
                           Grid.ColumnSpan="12"
                           Margin="5"
                           Padding="0"
                           Name="chartColumn"
                           Visibility="{Binding ColumnSeriesVisibility}">
        <chartingToolkit:ColumnSeries ItemsSource="{Binding DataSource}"
                                      DependentValuePath="Value"
                                      IndependentValuePath="Key"
                                      Name="Column">
            <chartingToolkit:ColumnSeries.DataPointStyle>
                <Style TargetType="chartingToolkit:ColumnDataPoint" BasedOn="{StaticResource {x:Type chartingToolkit:ColumnDataPoint}}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="chartingToolkit:ColumnDataPoint">
                                <Grid>
                                    <Rectangle Fill="{StaticResource myColor}"  Stroke="Black"/>
                                    <Grid Margin="0 -20 0 0" HorizontalAlignment="Center" VerticalAlignment="Top">
                                        <TextBlock Text="{TemplateBinding FormattedDependentValue}" Margin="2"/>
                                    </Grid>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </chartingToolkit:ColumnSeries.DataPointStyle>
        </chartingToolkit:ColumnSeries>
        <chartingToolkit:Chart.LegendStyle>
            <Style TargetType="datavis:Legend">
                <Setter Property="Width" Value="0" />
            </Style>
        </chartingToolkit:Chart.LegendStyle>
        <chartingToolkit:Chart.Template>
            <ControlTemplate TargetType="chartingToolkit:Chart">
                <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
                    <Grid Margin="3">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="0" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>

                        <datavis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" />

                        <!-- Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto -->
                        <Grid Grid.Row="1">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>

                            <datavis:Legend x:Name="Legend" Title="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}" Grid.Column="1" />
                            <chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
                                <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
                                <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
                            </chartingprimitives:EdgePanel>
                        </Grid>
                    </Grid>
                </Border>
            </ControlTemplate>
        </chartingToolkit:Chart.Template>
    </chartingToolkit:Chart>

在清理命令中,以下代码

DataSource = null;

你需要像图1那样做。

c#
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Alexandr
    2020-01-03T03:20:50Z2020-01-03T03:20:50Z

    我决定把Label它放在他们的位置并展示它

    <Controls:MetroWindow x:Class="ExpansesCalculation.ReportChart"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ExpansesCalculation"
        xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
        xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"  
        xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
        xmlns:datavis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
        xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"
        mc:Ignorable="d"
        Title="Графики"
        Height="600" 
        Width="800"
        MinHeight="600"
        MinWidth="800"
        Background="#FFF0EAEA" 
        WindowStartupLocation="CenterScreen">
    <Window.Resources>
        <Style TargetType="CheckBox">
            <Setter Property="Margin" Value="5"></Setter>
        </Style>
        <RadialGradientBrush GradientOrigin="0.25,0.5" Center="0,0" RadiusX="1" RadiusY="1" x:Key="myColor">
            <GradientStop Color="#FF3CC8DE" Offset="0" />
            <GradientStop Color="#FF3CAEDE" Offset="1.0" />
        </RadialGradientBrush>
    </Window.Resources>
    <Grid>
        <!--Rows and columns definition-->
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="90"/>
            <RowDefinition/>
            <RowDefinition Height="45"/>
        </Grid.RowDefinitions>
    
        <!--Chart column-->
        <chartingToolkit:Chart Grid.Row="1"
                               Grid.ColumnSpan="12"
                               Margin="5"
                               Padding="0"
                               Name="chartColumn"
                               Visibility="{Binding ColumnSeriesVisibility}">
            <chartingToolkit:ColumnSeries ItemsSource="{Binding DataSource}"
                                          DependentValuePath="Value"
                                          IndependentValuePath="Key"
                                          Name="Column">
                <chartingToolkit:ColumnSeries.DataPointStyle>
                    <Style TargetType="chartingToolkit:ColumnDataPoint" BasedOn="{StaticResource {x:Type chartingToolkit:ColumnDataPoint}}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:ColumnDataPoint">
                                    <Grid>
                                        <Rectangle Fill="{StaticResource myColor}"  Stroke="Black"/>
                                        <Grid Margin="0 -20 0 0" HorizontalAlignment="Center" VerticalAlignment="Top">
                                            <TextBlock Text="{TemplateBinding FormattedDependentValue}" Margin="2"/>
                                        </Grid>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:ColumnSeries.DataPointStyle>
            </chartingToolkit:ColumnSeries>
            <chartingToolkit:Chart.LegendStyle>
                <Style TargetType="datavis:Legend">
                    <Setter Property="Width" Value="0" />
                </Style>
            </chartingToolkit:Chart.LegendStyle>
            <chartingToolkit:Chart.Template>
                <ControlTemplate TargetType="chartingToolkit:Chart">
                    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
                        <Grid Margin="3">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="0" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>
    
                            <datavis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" />
    
                             <!--Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto--> 
                            <Grid Grid.Row="1">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
    
                                <datavis:Legend x:Name="Legend" Title="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}" Grid.Column="1" />
                                <chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
                                    <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
                                    <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
                                </chartingprimitives:EdgePanel>
                            </Grid>
                        </Grid>
                    </Border>
                </ControlTemplate>
            </chartingToolkit:Chart.Template>
        </chartingToolkit:Chart>
    
        <!--Label-->
        <Label Grid.Row="1"
               Grid.ColumnSpan="12"
               Margin="5"
               Name="label"
               Content="{Binding LabelText}"
               FontSize="20"
               HorizontalAlignment="Center"
               VerticalAlignment="Center"
               Visibility="{Binding LabelVisibility}">
            <Label.Style>
                <Style TargetType="Label">
                    <Setter Property="Visibility" Value="Collapsed"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding DataSource.Count}" Value="0">
                            <Setter Property="Visibility" Value="Visible"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Label.Style>
        </Label>
    
        <!--Chart Pie-->
        <chartingToolkit:Chart Grid.Row="1"
                               Grid.RowSpan="1"
                               Grid.ColumnSpan="12"
                               Margin="5"
                               Name="chartPie"
                               Padding="0"
                               Visibility="{Binding PieSeriesVisibility}">
            <chartingToolkit:PieSeries ItemsSource="{Binding DataSource}"
                                       DependentValuePath="Value"
                                       IndependentValuePath="Key"
                                       Name="Pie"
                                       Padding="0">
                <!--<chartingToolkit:PieSeries.DataPointStyle>
                    <Style TargetType="chartingToolkit:PieDataPoint">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:PieDataPoint">
                 Template here 
                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:PieSeries.DataPointStyle>-->
            </chartingToolkit:PieSeries>
            <chartingToolkit:Chart.Template>
                <ControlTemplate TargetType="chartingToolkit:Chart">
                    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
                        <Grid Margin="3">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="0" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>
    
                            <datavis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" />
    
                             <!--Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto--> 
                            <Grid Grid.Row="1">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
    
                                <datavis:Legend x:Name="Legend" Title="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}" Grid.Column="1" />
                                <chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
                                    <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
                                    <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
                                </chartingprimitives:EdgePanel>
                            </Grid>
                        </Grid>
                    </Border>
                </ControlTemplate>
            </chartingToolkit:Chart.Template>
        </chartingToolkit:Chart>
    </Grid>
    

    • 0

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5