示例#1
0
        private void AddCanvas_AddClick(object sender, RoutedEventArgs e)
        {
            var text = AddDigit.Text;

            if (text.Length != 1)
            {
                MessageBox.Show(this,
                                "Введите одну цифру.",
                                APP_NAME,
                                MessageBoxButton.OK,
                                MessageBoxImage.Error);
                return;
            }

            if (text[0] < '0' || text[0] > '9')
            {
                MessageBox.Show(this,
                                "Введите цифру.",
                                APP_NAME,
                                MessageBoxButton.OK,
                                MessageBoxImage.Error);
                return;
            }

            var index = text[0] - '0';

            var size = new Size(AddCanvas.ActualWidth, AddCanvas.ActualHeight);

            // Measure and arrange the surface
            // VERY IMPORTANT
            AddCanvas.Measure(size);
            AddCanvas.Arrange(new Rect(size));
            var renderBitmap = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96d, 96d, PixelFormats.Pbgra32);

            renderBitmap.Render(AddCanvas);

            Images[index].Add(renderBitmap);
            AddCanvas_CleanClick(null, null);
        }
 public void RequestNewCanvas()
 {
     AddCanvas.Fire(this);
 }