FlexChart for UWP
画像へのエクスポート
FlexChart > FlexChart の操作 > エクスポート > 画像へのエクスポート

FlexChart for UWP では、FlexChart を複数の画像形式にエクスポートできます。サポートされる形式は、PNGJPEGSVG です。

FlexChart を画像形式にエクスポートするには、SaveImage メソッドを使用します。このメソッドは、指定されたストリームを使用してチャートを画像として保存します。SaveImage メソッドは、画像を保存するためのパラメータとして、ストリーム、画像形式、高さ、幅、背景色を受け取ります。

このトピックは、クイックスタートセクションで作成されたサンプルを使用して、ボタンクリックで FlexChart を画像にエクスポートするための実装方法を説明します。

次の図に、チャートをご希望の画像形式にエクスポートするためのボタンがクリックされたチャートを示します。

MainPage.xaml
コードのコピー
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="93*"/>
            <RowDefinition Height="97*"/>
        </Grid.RowDefinitions>
        <StackPanel Orientation="Horizontal" Margin="10 0">
            <Button Content="エクスポート" Width="100" Margin="10,72,10,72.333" Click="Button_Click_1"/>
        </StackPanel>
        <Chart:C1FlexChart x:Name="flexChart" HorizontalAlignment="Left" Width="443" ItemsSource="{Binding DataContext.Data}"
                 BindingX="Fruit" Margin="93,106,0,70" 
                 Grid.RowSpan="2">
            <Chart:C1FlexChart.Series>
                <Chart:Series SeriesName="3月" Binding="March"></Chart:Series>
                <Chart:Series SeriesName="4月" Binding="April"></Chart:Series>
                <Chart:Series SeriesName="5月" Binding="May"></Chart:Series>
            </Chart:C1FlexChart.Series>
            <Chart:C1FlexChart.AxisX>
                <Chart:Axis MajorGrid="False" Position="Bottom"></Chart:Axis>
            </Chart:C1FlexChart.AxisX>
            <Chart:C1FlexChart.AxisY>
                <Chart:Axis AxisLine="False" Position="Left" MajorUnit="5"></Chart:Axis>
            </Chart:C1FlexChart.AxisY>
            <Chart:C1FlexChart.SelectionStyle>
                <Chart:ChartStyle Stroke="Red"></Chart:ChartStyle>
            </Chart:C1FlexChart.SelectionStyle>
        </Chart:C1FlexChart>
    </Grid>
MainPage.xaml.cs
コードのコピー
 public sealed partial class MainPage : Page
    {
        List _fruits;
        public MainPage()
        {
            this.InitializeComponent();
        }
        public List Data
        {
            get
            {
                if (_fruits == null)
                {
                    _fruits = DataCreator.CreateFruit();
                }

                return _fruits;
            }
        }
        private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            var picker = new FileSavePicker();
            Enum.GetNames(typeof(ImageFormat)).ToList().ForEach(fmt =>
            {
                picker.FileTypeChoices.Add(fmt.ToString().ToUpper(), new List<string>() { "." + fmt.ToString().ToLower() });
            });
            StorageFile file = await picker.PickSaveFileAsync();
            if (file != null)
            {
                Stream stream = new MemoryStream();
                var extension = file.FileType.Substring(1, file.FileType.Length - 1);
                ImageFormat fmt = (ImageFormat)Enum.Parse(typeof(ImageFormat), extension, true);
                flexChart.SaveImage(stream, fmt);
                using (Stream saveStream = await file.OpenStreamForWriteAsync())
                {
                    stream.CopyTo(saveStream);
                    stream.Seek(0, SeekOrigin.Begin);
                    saveStream.Seek(0, SeekOrigin.Begin);
                    saveStream.Flush();
                    saveStream.Dispose();
                }
            }
        }
    }