BitmapImage in UWP
Posted: Wed Dec 01, 2021 3:01 pm
I am having difficulty using a bitmap as an event marker in UWP, may I request a sample showing this implemented please.
Mike
a happy Canadian user !
Mike
a happy Canadian user !
A place for LightningChart Ultimate related Q&A's.
https://lightningchart.com/forum/
Code: Select all
BitmapImage bmi = new BitmapImage();
bmi.UriSource = new Uri("ms-appx:///Resources/capture47.png");
_chart.ViewXY.PointLineSeries[0].SeriesEventMarkers[0].Symbol.BitmapImage = bmi;
Code: Select all
private async void LoadImages()
{
_chart.ViewXY.GraphBackground.Style = RectFillStyle.Bitmap;
_chart.ViewXY.GraphBackground.Bitmap.Layout = BitmapFillLayout.Stretch;
_chart.ViewXY.GraphBackground.Bitmap.Image = await ChartTools.ImageFromAppContent("Resources/Mesh1.png");
}
Code: Select all
var completeChart = reportingChartService.GetPlanPlot(styledChart, analysis, size, scale, units);
stackPanel.Children.Add(completeChart );
Code: Select all
var storageFolder = ApplicationData.Current.LocalFolder;
var plotFile = await storageFolder.CreateFileAsync("tempPlotFile.bmp", CreationCollisionOption.ReplaceExisting);
await completeChart .SaveToFileAsync(plotFile, TargetImageFormat.Bmp);
Code: Select all
public sealed partial class MainPage : Page
{
private LightningChart _chart = null;
public MainPage()
{
this.InitializeComponent();
CreateChart();
}
private void CreateChart()
{
_chart = new LightningChart();
_chart.BeginUpdate();
AxisX ax = new AxisX(_chart.ViewXY);
_chart.ViewXY.XAxes.Add(ax);
AxisY ay = new AxisY(_chart.ViewXY);
_chart.ViewXY.YAxes.Add(ay);
PointLineSeries pls = new PointLineSeries(_chart.ViewXY, _chart.ViewXY.XAxes[0], _chart.ViewXY.YAxes[0]);
pls.LineVisible = true;
pls.PointsVisible = false;
Random rnd = new Random();
SeriesPoint[] points = new SeriesPoint[11];
for (int i = 0; i < 11; i++)
{
points[i].X = i;
points[i].Y = rnd.NextDouble() * 8 + 1;
}
pls.Points = points;
_chart.ViewXY.PointLineSeries.Add(pls);
SeriesEventMarker marker = new SeriesEventMarker(pls);
marker.Symbol.UseImageSize = false;
marker.Symbol.Width = 50;
marker.Symbol.Height = 50;
marker.Symbol.Shape = SeriesMarkerPointShape.Bitmap;
marker.HorizontalPosition = SeriesEventMarkerHorizontalPosition.AtXValue;
marker.XValue = 4;
marker.VerticalPosition = SeriesEventMarkerVerticalPosition.TrackSeries;
pls.SeriesEventMarkers.Add(marker);
BitmapImage bmi = new BitmapImage();
bmi.UriSource = new Uri("ms-appx:///Resources/capture47.png");
_chart.ViewXY.PointLineSeries[0].SeriesEventMarkers[0].Symbol.BitmapImage = bmi;
_chart.KeyDown += _chart_KeyDown;
_chart.EndUpdate();
_chart.MinHeight = 1000;
_chart.Height = 1000;
stackPanel.Children.Add(_chart);
LoadImages();
}
private async void LoadImages()
{
_chart.ViewXY.GraphBackground.Style = RectFillStyle.Bitmap;
_chart.ViewXY.GraphBackground.Bitmap.Layout = BitmapFillLayout.Stretch;
_chart.ViewXY.GraphBackground.Bitmap.Image = await ChartTools.ImageFromAppContent("Resources/Mesh1.png");
}
private void _chart_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.P)
{
SaveImage();
}
}
private async void SaveImage()
{
StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
StorageFile sampleFile = await storageFolder.CreateFileAsync("sample.bmp", CreationCollisionOption.ReplaceExisting);
await _chart.SaveToFileAsync(sampleFile, TargetImageFormat.Bmp);
}
}