WPF ICommand DependencyProperty in User Control

20 בDecember 2013

בהמשך לכמה פוסטים שהעליתי בעבר ועסקו בהבדל שבין UserControl ו CustomControl לפחות לגבי מי שמשתמש בUSerControl בתור CustomControl חשוב לשים לב להבדל הבא: כידוע אחד הדברים שנרצה לשתול בקונטרול שלו זה אירועים ו Commands שניתן יהיה להפעיל מבחוץ ז"א רק הגדרה של Dependency Property מסוג ICommand או RoutedEvent. בפוסט הזה לדוגמא: http://blogs.microsoft.co.il/uriel99/2013/10/15/wpf-custom-controls-part-8-command-in-control/הדגמתי איך נעשה את זה לגבי commands (ולא יהיה הבדל בין זה לבין סתם פרופרטיז או Events) אבל הערה חשובה שהביאה אותי לפוסט קצר זה: הסינטקס שבו אני משתמש בXaml לא יעבוד למי שיממש את הקונטרול שלו דרך UserControl. ואני מתכוון לחלק הזה שמציג את הUI של הקונטרול שזה הTamplate ומרים את הcommand. הדגמתי...
תגיות: , , ,
אין תגובות

Logical Tree vs. Visual Tree Part B

בפוסט הקודם :  http://blogs.microsoft.co.il/uriel99/2013/12/19/logical-tree-vs-visual-tree-part-a/ התוודענו לרעיון של עץ לוגי ועץ ויזואלי בWPF עכשיו ננסה לבצע "טיול" על העץ ולהדפיס את הערכים כפי שהם מיוצגים בכל עץ .. ה”טיול” יתבצע בעזרת פונקציה רקורסיבית פשוטה שמשתמשת בתשתית שWPF מספק לנו ואני מתתנצל אם לא הזכרתי אותה קודם וזה ה TreeHelper למה זה טוב? א. כדי להבין יותר טוב את התאוריה, ב. זה מאוד יכול לעזור בבניית פקדים מורכבים לבד והבנה של dataBinding ג. להוכיח יכולת.. כלים שונים כדוגמת WPF Snoop האגדי מבצעים פעולות דומות ! בדוגמא הבאה אנו נטייל על העץ הויזואלי בצורה רקורסיבית אבל כלפי מטה: (drill down) void PrintDownVisualTree(object obj, int depth = 0) ...
תגיות: , ,
תגובה אחת

Interpreter Design Pattern

19 בDecember 2013

אינטרפרטר הוא מתרגם , שפת ביניים שמייצגת אלגוריתם או UI וניתנת לקריאה ע"י פלטפורמות שונות. אינטרפרטר מקובל גם כתחליף לקומפיילר וכאן הכוונה למשהו קצת אחר, במקום לקמפל את הקוד ולהופכו לקוד מכונה בינארי אני מבצע פקודה אחת בכל פעם ולא את כל הקוד. מי שעדיין עובד בשיטה כזאת זה (JavaScript וזה דיון אחר בזמן אחר..) לגופו של עניין אני יכול להציג "שיטוח אובייקטים" (סריליזציה) כסוג של  ,Interpreter כמו גם לטעון שכל שפות התגיות שמתארות נתונים (  XML,Xaml,HTML )כי כל מה שמציג הקוד (MarkUp בשפה המקצועית) זה איך הולך הUI שלי להראות,  או איך בונים את ההיררכיה של האובייקט וזה מאפשר לי להעביר...
אין תגובות

Logical Tree vs. Visual Tree Part A

יסוד מאוד חשוב בהבנה של וזה קשור להבנה בעיקר ולא לשימוש שלנו.. הוא החלוקה של מבנה הUI לשני עצים מקבילים,   האחד מטפל בתצוגה והשני בלוגיקה.   מה הרעיון? WPF חילקו את הUI להמון חלקים שאין להם בד"כ משמעות למתכנת שכותב ב C#, אולי למעצב.. אנחנו לא נחפור עכשיו לעומק, אבל הרעיון הוא גמישות בעיצוב שמאפשר לנו להשתמש בלוגיקה של פקד ולדרוס לו את הUI לפי ה"קריז" וכתוצאה מזה גם הפחתה בתלויות ובגודל ה"פיזי" של אלמנטים. כי אין לי צורך באלמנט "מנופח" עם שבעת אלפים מאפיינים, אלא אני משאיר Template פתוח שכל אחד יכול...
אין תגובות

קבלת מספר הבילד ותאריך הבילד של האפליקציה דרך קוד

11 בDecember 2013

נדרש מאתנו לעיתים לקבל את המידע הזה מקוד מסיבות קוסמטיות בעיקר, מסיבה פשוטה, מספרי הבילדים הגרסאות וכו' מתועדפים היטב ומנוהלים תחת SourceControl כלשהו (TFS) , אז מתי זה רלוונטי? כמו שאמרתי קוסמטיקה , לדוגמא אפליקציות מציגות מסך About, ששם מספרים לכם על האפליקציה :   "הסיפור" הזה משעמם ככל שיהיה זה לרוב סטנדרט של מנהלי מוצר ועם פורמט ידוע מראש. • סימן רשום של המוצר • לוגו כלשהו או אייקון • מספר גרסה • מספר גרסה פנימה (מספר הבילד) • תאריך הבילד • מפתחים מובילים (במשחקים ובOpen Source) • לעיתים הפניה ל"צור קשר"...
אין תגובות

WPF style VS Control Template

7 בDecember 2013

.Style in WPF is quite simple there are two main methods for implementation .The first is local and the second is in general Resource Dictionary The WPF Control Template is different , at the moment we declare on a Control any Custom Template we most to provide full implementation of the Control Visual  appearance :For example <Window.Resources> <ControlTemplate x:Key="myButtonTemplate"> <Border Background="Red" Width="34" Height="45" /> </ControlTemplate> </Window.Resources> :And using this template is like this <Button Content="Button" Click="Button_Click"...
אין תגובות

רישום לEvents ברמת אפליקציה.

6 בDecember 2013

שימוש באפליקציות מבוזרות עם ריבוי חלונות לעיתים מסבך אותנו בטיפול באירועים שהם מבחינתנו גלובליים. ז"א אני רוצה בכל מקום באפליקציה להיות מסוגל להתמודד עם לחיצה על מקש Enter אזברמה הבסיסית אני יכול להוסיף קוד כזה: public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); EventManager.RegisterClassHandler(typeof(Window), Window.KeyDownEvent, new RoutedEventHandler(on_KeyDown)); ...
תגיות: , ,
אין תגובות

WPF Animation – XAML only

WPF provide a plentiful Markup features, for example – Animation Yet , as Programmers we like to write code in C#. but XAML can do it simply, easily , and with much more flexibility As a sample lets try animate 3 Ellipses To have the Traffic Lights effect We have 3 parts in our XAML, and our c# is empty First : Describe our View Struct which is simple <Grid> <StackPanel Orientation="Vertical" VerticalAlignment="Bottom" Margin="2,0,0,3" Visibility="Visible"> <Ellipse x:Name="ellips1" Fill="red" Width="20" Height="20" Visibility="Hidden"/> ...
תגיות: , ,
אין תגובות