. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Р<strong>е</strong>ш<strong>е</strong>ни<strong>е</strong> пробл<strong>е</strong>мы с прозрачностью<br />
Давайт<strong>е</strong> устраним арт<strong>е</strong>факты изображ<strong>е</strong>ния в м<strong>е</strong>стах, гд<strong>е</strong> мал<strong>е</strong>ньки<strong>е</strong><br />
картинки п<strong>е</strong>р<strong>е</strong>крываются! Р<strong>е</strong>шить пробл<strong>е</strong>му помож<strong>е</strong>т<br />
м<strong>е</strong>тод D raw lm age (). Мы в<strong>е</strong>рн<strong>е</strong>мся к наш<strong>е</strong>му прилож<strong>е</strong>нию<br />
Windows и отр<strong>е</strong>дактиру<strong>е</strong>м <strong>е</strong>го таким образом, чтобы п<strong>е</strong>р<strong>е</strong>крывающи<strong>е</strong>ся<br />
изображ<strong>е</strong>ния н<strong>е</strong> удаляли фрагм<strong>е</strong>нты друг друга.<br />
Нарисованны<strong>е</strong> нашим визуализатором<br />
п<strong>е</strong>р<strong>е</strong>крывающи<strong>е</strong>ся<br />
пч<strong>е</strong>лы им<strong>е</strong>ли странный<br />
вид.<br />
»ажн<strong>е</strong>ни<strong>е</strong>!<br />
©<br />
Добавьт<strong>е</strong> м<strong>е</strong>тод D r a w B e e {), рисующий пч<strong>е</strong>л на объ<strong>е</strong>ктах Graphics. Он<br />
использу<strong>е</strong>т п<strong>е</strong>р<strong>е</strong>груж<strong>е</strong>нный конструктор D r a w l m a g e (), который опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>т<br />
м<strong>е</strong>сто и разм<strong>е</strong>р рисунка при помощи структуры R e c t a n g l e .<br />
p u b l i c v o i d DrawBee( G r a p h ic s g . R e c t a n g le r e c t ) {<br />
}<br />
g . D r a w l m a g e ( P r o p e r t i e s . R e s o u r c e s . B e e _ a n i m a t i o n _ l , r e c t ) ;<br />
Это новый о б р а б о т ч и к со б ы т и я C l ic k . Он располага<strong>е</strong>т в<strong>е</strong>рхний<br />
л<strong>е</strong>вый угол улья вн<strong>е</strong> формы, в точк<strong>е</strong> ( -width, - H e i g h t ) ,<br />
распространяя <strong>е</strong>го на двойную ширину и высоту формы, и да<strong>е</strong>т<br />
возможность м<strong>е</strong>нять <strong>е</strong><strong>е</strong> разм<strong>е</strong>р. Зат<strong>е</strong>м м<strong>е</strong>тодом D r a w B e e () добавляются<br />
ч<strong>е</strong>ты р<strong>е</strong> пч<strong>е</strong>лы.<br />
П<strong>е</strong>р<strong>е</strong>крывающи<strong>е</strong>ся изображ<strong>е</strong>ния<br />
пч<strong>е</strong>л вы глядят<br />
намного лучил<strong>е</strong>.<br />
Ь -<br />
Ш Ш<br />
p r i v a t e v o i d F o r m l _ C l i c k ( o b j e c t s e n d e r , E v e n t A r g s e ) {<br />
Сначала рису<strong>е</strong>тся^<br />
фон улья, который<br />
выходит за границы<br />
формы. Зат<strong>е</strong>м мы<br />
рису<strong>е</strong>м ч<strong>е</strong>тыр<strong>е</strong>х п<strong>е</strong>р<strong>е</strong>крывающихся<br />
пч<strong>е</strong>л,<br />
<strong>е</strong>сли они н<strong>е</strong> п<strong>е</strong>р<strong>е</strong>крываются,<br />
ув<strong>е</strong>личьт<strong>е</strong><br />
форму и снова щ <strong>е</strong>лкнит<strong>е</strong><br />
на н<strong>е</strong>й.<br />
О<br />
}<br />
u s i n g ( G r a p h ic s g = C r e a t e G r a p h i c s 0 ) {<br />
}<br />
g . D r a w l m a g e ( P r o p e r t i e s . R e s o u r c e s . H i v e ___i n s i d e _ ,<br />
}<br />
...НО оста<strong>е</strong>тся пробл<strong>е</strong>ма<br />
- W i d t h , - H e i g h t , W id t h * 2 , H e i g h t * 2 ) ;<br />
S iz e s i z e = n e w S i z e ( W i d t h / 5 , H e i g h t / 5)<br />
D r a w B e e ( g , n e w R e c t a n g l e (<br />
n e w P o i n t ( W i d t h / 2 - 5 0 , H e i g h t / 2 - 40), s i z e ) ) ;<br />
D r a w B e e ( g , n e w R e c t a n g l e (<br />
n e w P o i n t ( W i d t h / 2 - 2 0 , H e i g h t / 2 - 60), s i z e ) ) ;<br />
D r a w B e e ( g , n e w R e c t a n g l e (<br />
n e w P o i n t ( W i d t h / 2 - 8 0 , H e i g h t / 2 - 30), s i z e ) ) ;<br />
D r a w B e e ( g , n e w R e c t a n g l e (<br />
n e w P o i n t ( W i d t h / 2 - 9 0 , H e i g h t / 2 - 80), s iz e ) ) ;<br />
Но посмотрит<strong>е</strong>, что произойд<strong>е</strong>т,<br />
<strong>е</strong>сли п<strong>е</strong>р<strong>е</strong>тащить пч<strong>е</strong>л за<br />
границу формы и обратно!<br />
Запустит<strong>е</strong> программу и щ<strong>е</strong>лкнит<strong>е</strong> на форм<strong>е</strong>, чтобы нарисовать<br />
пч<strong>е</strong>л. Но <strong>е</strong>сли п<strong>е</strong>р<strong>е</strong>тащ ить форму за границу экрана, а потом в<strong>е</strong>рнуть,<br />
и зо б р а ж <strong>е</strong> н и <strong>е</strong> и сч <strong>е</strong> зн <strong>е</strong>т ! Сд<strong>е</strong>лайт<strong>е</strong> то ж<strong>е</strong> само<strong>е</strong> с картинкой<br />
«Nectar here», программу для которой вы написали н<strong>е</strong>сколько страниц<br />
назад, —та ж <strong>е</strong> п р обл <strong>е</strong>м а!<br />
Как ВЫ дум а<strong>е</strong>т<strong>е</strong>, что происходит?<br />
дальш<strong>е</strong> ► 611