Diskuze: WPF Vybírání barvy

C# .NET .NET (C# a Visual Basic) WPF Vybírání barvy American English version English version

Avatar
D0ll0k
Člen
Avatar
D0ll0k:

Ahojte :). Potřeboval bych pomoct s vybíráním barev ve WPF. Jde o to, že mám dva canvasy nad sebou. Dolnímu do backgroundu jsem vložil LinearGradientBrush z prava doleva, kde je nejdřív červená a pak bílá barva a na horním je další LinearGradientBrush ze zdola nahoru s černou a následně průhlednou barvou. Ta červená barva se může měnit podle toho, jaká čísla zadám do tří textboxů (jako vybírání barev v RGB). Teď bych potřeboval zjistit jakou barvu má pixel, na který jsem klikl. Napadlo mě, že bych mohl udělat screenshot a pak ten pixel najít, jenže jsem nemohl přijít, jak to udělat.

Odpovědět 17.9.2015 16:36
Ten, co se snaží "programovat"
Avatar
Odpovídá na D0ll0k
sadlomaslox25:
private void grid_MouseDown(object sender, MouseButtonEventArgs e)
        {
            RenderTargetBitmap render = new RenderTargetBitmap((int)grid.ActualWidth, (int)grid.ActualHeight, 96, 96, PixelFormats.Default);
            render.Render(grid);

            using (MemoryStream stream = new MemoryStream())
            {
                BitmapEncoder encoder = new BmpBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(render));
                encoder.Save(stream);


                using (Bitmap bitmap = new Bitmap(stream))
                {
                    var position = e.GetPosition(grid);
                    var color = bitmap.GetPixel((int) position.X, (int) position.Y);
                    button.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(color.A, color.R, color.G, color.B));
                }
            }
        }

kde grid obsahuje ty 2 canvasy
a button.background je to co ma mit tu barvu.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 17.9.2015 22:01
Avatar
D0ll0k
Člen
Avatar
Nahoru Odpovědět 17.9.2015 22:14
Ten, co se snaží "programovat"
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.