מראה יותר אחיד ויפה לפקד ב-wpf
-
@pcinfogmach מה שאני חושב זה:
- להסיר את המסגרת מהלחצים עם האיקונים, זה מיותר
- גופן + TextBox בשורה אחת, גודל + סגנון בשורה מתחת
- להוסיף קצת רווחים ושוליים
- לפצל את החיפוש והחלפה לשני קטעים, אפשר עם כותרת או GroupBox או סוג של Card.
זה בנתיים מה שעולה לי
-
@pcinfogmach כתב במראה יותר אחיד ויפה לפקד ב-wpf:
לכאורה בשורה של הלחצנים זה לא יהיה טוב למתוח את הלחצנים (לחצנים מרובעים) אלא אם כן אני יעשה שהם גם יגלדו ואז שוב קצת בלגן.
אתה יכול לשים רווח ביניהם. אני לא זוכר איך עושים כזה דבר בWPF.
כמו"כ יש לי קצת בעיה בפיתוח חלונית צד בוורד שאני לא מכיר דרך להגדיר באופן מדוייק את רוחב הפקד המיטבי בהמרה מ-wpf ל-winforms. יש דרך?
אני חושב שהמיכל צריך להיות לגמרי יחסי, ולא להסתמך על גודל מוחלט.
-
@dovid כתב במראה יותר אחיד ויפה לפקד ב-wpf:
אני חושב שהמיכל צריך להיות לגמרי יחסי, ולא להסתמך על גודל מוחלט.
אתה צודק אבל בשלב מסויים זה נהיה מוגזם בהחלט ולא נראה יפה.
יש לי בעיה כללית שמסכים בגדלים שונים משנים את גודל החלונית צד ובצורה מוגזמת למדי. -
@קומפיונט כתב במראה יותר אחיד ויפה לפקד ב-wpf:
אני לא בטוח שאני צודק, אבל אני חושב שאין כזה פנל ב-wpf.
לכאורה אפשר על ידי הגדרת Gridcolumns בין הלחצנים
-
@pcinfogmach כתב במראה יותר אחיד ויפה לפקד ב-wpf:
לכאורה אפשר על ידי הגדרת Gridcolumns בין הלחצנים
ומה תעשה עם האחרון?
-
@dovid
אפשר לכאורה לייצר פקד דינאמי מהרעיון הזהusing System.Windows.Controls; using System.Windows; public class ButtonStripGrid : Grid { private void UpdateLayoutColumns() { this.ColumnDefinitions.Clear(); int childrenCount = this.Children.Count; if (childrenCount == 0) return; for (int i = 0; i < childrenCount * 2 - 1; i++) { this.ColumnDefinitions.Add(new ColumnDefinition { Width = (i % 2 == 0) ? GridLength.Auto : new GridLength(1, GridUnitType.Star) }); } for (int i = 0, j = 0; i < childrenCount; i++, j += 2) { SetColumn(this.Children[i], j); } } protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved) { base.OnVisualChildrenChanged(visualAdded, visualRemoved); UpdateLayoutColumns(); } public ButtonStripGrid() { if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(this)) { this.Loaded += (s, e) => UpdateLayoutColumns(); } } }
-
ממש מרגש כל העזרה שקיבלתי פה מחברי הפורום המיוחדים - תודה!
להלן התוצאה לבינתיים: