Dobrý den, prosím napadá Vás někoho jak z toho ven? Vyzkoušel jsem už různé "šarády" v rámci svých možností a znalostí ale výsledek zatím "naprd" :o) Čeho se snažím dosáhnout: vytvořit na pozadí "velkou" grafickou plochu bigG (8000x10000px) - Bitmapa tuto Bitmapu propojit na vrstvu Graphics abych do ní mohl kreslit; g=Graphics.FromImage(bigG) do ní výpočtem umístit různé grafické objekty(g.DrawRectangle..) jakmile tam bude nakresleno vše co je třeba - časově středně náročné cca 2,5sec. bitmapu bigG zobrazit ve Form1; Me.BackgroundImage = bigG až potud vše funguje ok dále mít možnost přes ScrollBary s Bitmapou pohybovat protože Form1 je vždy menší než bitmapa a tudíž nezobrazí celou bitmapu.(nechci zde žádný Zoom ani Stretch) prostě jen scrolem posunout do oblasti která se chce vidět. poslední věc je že nad celou touto grafikou bych potřeboval mít kurzorový kříž přes celý Form1.Width a Form1.Height se středem v bodě e.X,e.Y (aktuální souřadnice kurzoru ve Form1) tuto polohu mi vrací událost MouseMove. Potíže se kterými si nevím rady a hlavně proč se tak děje a co hledat : 1) když natáhnu bitmapu do Form1 (Me.BackgroundImage = bigG) tak i přesto že Form1.AutoScroll=True tak bitmapa se sice zobrazí ale jen část co vejde do Form1 a ScrollBary se neobjeví, tudíž není možné prohlížet části bitmapy které jsou "za viditelnou hranici" Form1 2) kurzorový kříž vykresluji do vrstvy buffer typu DoubleBuffer v události MouseMove vždy při pohybu myši, napřed se vše smaže : Buffer.Graphics.Clear(Color.White) a pak se nakreslí nový kříž podle nové polohy myši a na konci této události je buffer.Render který donutí DoubleBuffer se překlopit a zobrazit. Kurzor běhá celkem dobře, občas se sice cukne ale jinak ok, ale buffer vrstva vždy překryje tu podkladovou Bitmapu s již vykreslenou grafikou a nedokážu ji překecat aby to nedělala a běžela jakoby nad ní a neovlivňovala to co je už na Form1 zobrazeno. Díky moc za případnou pomoc, reakci nebo radu co dělám špatně. Petr
|