14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!