Dec 4, 2013

WPF - 4(ფუნჯები)

ამ ნაწილში ავხსნი თ როგორ შეგვიძლია გამოვიყენოთ ფუნჯები WPF ში უკანა და წინა ხედისთვის ფერის მისაცემად. ფუნჯები თავის მხრივ იყოფიან რამდენიმე ნაწილად და ვაპირებ თითოეულ მათგანს შევეხო იმ დონეზე, რომ იყოს გასაგები, შემდეგ კი იმპროვიზაციას შეგიძლიათ მიმართოთ, სხვადასხვა კომბინაციების გამოყენებით და სასურველი შედეგის მისაღებად. დავიწყოთ ფუნჯების ვარიაციების განხილვა

SolidColorBrush

ზემოთ მოცემული ღილაკი იყენებს SolidColorBrush ს, როგორც ამჩნევთ მთლიანი ფართი დაფარულია ერთი და იმავე ფერით. ჩვეულებრივ SolidColorBrush ის გამოყენების გარეშეც შესაძლებელია ღილაკ კონტროლისთვის ფერის მინიჭება, რაშიც მისი თვისება Background ი გვეხმარება, რომელიც ტექსტურ ცვლადს აფორმატებს ფერში.

LinearGradientBrush
ფერების უფრო დინამიური და გლუვი ცვლილებებისთვის შესაძლებელია გამოიყენოთ LinearGradientBrush, როგორც ქვემოთ არის ნაჩვენები ეს ფუნჯი განსაზღვრავს StartPoint და EndPoint თვისებებს. ამ თვისებების გამოყენებით შესაძლებელია ორ განზომილებიანი კოორდინატების დანიშვნა ფუნჯისთვის. სტანდარტული ფუნჯი, რომელიც არის gradient ტიპის იყენებს დიაგონალურ მნიშვნელობებს, რაც იმას ნიშნავს, რომ იწყება 0,0 კოორდინატში და სრულდება 1,1 კოორდინატში, რომელიც მაქსიმალურია მისთვის და წარმოადგენს ფიგურის დასასრულს. სხვა მნიშვნელობებისთვის გრადაციამ შეიძლება შეიცვალოს მიმართულებები. მაგალითისთვის ავიღოთ StartPoint 0,0 და EndPoint 0,1 მივიღებთ ვერტიკალურ გრადაციას. 
ამ ფუნჯის შიგთავსის გათვალისწინებით, შესაძლებელია ფიგურის წერტილებში განსაზღვროთ სასურველი ფერის დაწყების კოორდინატები. GradientStop ელემენტის გამოყენებით.



 RadialGradientBrush
RadialGradientBrush ის გამოყენებით შესაძლებელია ფერების გლუვი განაწილება წრიული ფორმით. ეს ფუნჯი განსაზღვრავს ფერის საწყისს, რომელიც იწყება GradientOrigin წერტილიდან.

ImageBrush
სურათზე ფუნჯის გადასატარებლად საჭიროა სურათი და ImageBrush ელემენტი, რომელიც ამის საშუალებას გაძლევთ. ამ ელემენტშივე ხდება სურათის წყაროს მითითება
<Button Content="Image Brush" Width="100" Height="80" Margin="5"
Foreground="White">
<Button.Background>
<ImageBrush ImageSource="/BrushesDemo; component/Budapest.jpg" />
</Button.Background>
</Button>

VisualBrush
ის გამოყენებით შესაძლებელია WPF ის სხვა ელემენტების გამოყენება, როგორც ფუნჯი. შეგიძლიათ, WPF ელემენტს დაუმატოთ Visual თვისება. ვნახოთ ოთხკუთხედისა და ღილაკის კომბინაცია.

ამის შემდეგ შემიძლია განვიხილო მომენტი, როდესაც საჭიროა VisualBrush ს დავუმატო ნებისმიერი UIElement. განვიხილავ MediaElement ის დამატებას. ამისთვის საჭირო იქნება, ჩემი მაგალითის გათვალისწინებით solution Explorerში შევქმნათ ახალი ფაილი, ან პირდაპირ იქ დავამატოთ მედია ელემენტი, რომელის გამოყენებაც გვინდა. ჩემი solution Explorer ასე გამოიყურება:





VisualBrush ის დახმარებით შესაძლებელია ბევრი საინტერესო ეფექტის გაკეთება, მათ შორის არის არეკვლის ეფექტი, რომელსაც შემოგთავაზებთ.

ღილაკი, რომელიც ნაჩვენებია შეიცავს StackPanelს, რომელიც თავის მხრივ შეიცავს MediaElementს, რომელიც ჩვენთვის ნაცნობია და Borderს. Border შეიცავს Rectangle, რომელიც ივსება VisualBrush ით. ეს ფუნჯი განსაზღვრავს გამჭვირვალობასა და ტრანსფორმაციას.  ტრანსფორმაცია ხდება RelativeTransform ის დახმარებით, რომელიც არის VisualBrush ის თვისება და იყენებს ფარდობით კოორდინატებს. scaleY = -1 ით Y კოორდინატზე კეთდება არეკვლის ეფექტი, ანუ სურათი ტრიალდება, ხოლო TranslateTransform ჩამოაქვს ამოტრიალებული სურათი ქვემოთ, სადაც წესით უნდა იყოს არეკვლა. მონაცემთა კავშირს ავხსნი მოგვიანებით, (Viusal = “{Binding ElementName = reflected}”).

No comments:

Post a Comment