דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט window

שאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט window

מתוזמן נעוץ נעול הועבר תכנות
7 פוסטים 4 כותבים 301 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • pcinfogmachP מנותק
    pcinfogmachP מנותק
    pcinfogmach
    כתב ב נערך לאחרונה על ידי
    #1

    שאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט window

    גמ"ח מידע מחשבים ואופיס

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      אני חושב שזה קשור למערכת הפעלה,
      יש כזה דבר חלון בלי צל?

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      1
      • קומפיונטק מנותק
        קומפיונטק מנותק
        קומפיונט
        כתב ב נערך לאחרונה על ידי
        #3

        חלון קלאסי מקבל את העיטורים והלחצנים (של ה'סגור', 'מזער' וכו') ממערכת ההפעלה, זה משתנה בין מערכות הפעלה וזה כולל גם את הצל שמסביב, אם אתה רוצה חלון ללא עיטורים תגדיר את WindowStyle ל - None, בכזה מקרה תקבל מלבן לבן בלי שם דברים מסביב.

        M pcinfogmachP 2 תגובות תגובה אחרונה
        1
        • M מנותק
          M מנותק
          Mordechai 0
          השיב לקומפיונט ב נערך לאחרונה על ידי
          #4

          @קומפיונט כתב בשאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט window:

          חלון קלאסי מקבל את העיטורים והלחצנים (של ה'סגור', 'מזער' וכו') ממערכת ההפעלה, זה משתנה בין מערכות הפעלה וזה כולל גם את הצל שמסביב, אם אתה רוצה חלון ללא עיטורים תגדיר את WindowStyle ל - None, בכזה מקרה תקבל מלבן לבן בלי שם דברים מסביב.

          אם תוסיף את זה AllowsTransparency="True" תוכל גם לעשות את החלון או חלק מהחלון שקוף לפי בחירה

          צילום מסך 2023-12-06 171002.png

          אפשר לעשות עם זה עיצובים מדהימים

          תגובה 1 תגובה אחרונה
          1
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #5

            @Mordechai-0 מזכיר לי את זה
            https://tchumim.com/topic/150
            זה משנת 2013...

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            0
            • pcinfogmachP מנותק
              pcinfogmachP מנותק
              pcinfogmach
              השיב לקומפיונט ב נערך לאחרונה על ידי pcinfogmach
              #6

              @קומפיונט כתב בשאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט window:

              חלון קלאסי מקבל את העיטורים והלחצנים (של ה'סגור', 'מזער' וכו') ממערכת ההפעלה, זה משתנה בין מערכות הפעלה וזה כולל גם את הצל שמסביב, אם אתה רוצה חלון ללא עיטורים תגדיר את WindowStyle ל - None, בכזה מקרה תקבל מלבן לבן בלי שם דברים מסביב.

              לא עזר בשביל הצל רק לשאר הדברים
              צריך לעשות גם AllowsTransparency = true;
              כמו ש@קומפיונט כתב
              אבל מסתבר שאם עושים את זה אז מאבדים את היכולת לשנות את הגודל של החלון.

              גמ"ח מידע מחשבים ואופיס

              pcinfogmachP תגובה 1 תגובה אחרונה
              1
              • pcinfogmachP מנותק
                pcinfogmachP מנותק
                pcinfogmach
                השיב לpcinfogmach ב נערך לאחרונה על ידי pcinfogmach
                #7

                @pcinfogmach כתב בשאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט window:

                אבל מסתבר שאם עושים את זה אז מאבדים את היכולת לשנות את הגודל של החלון.

                עריכה: צריך לעשות כך במקום

                <WindowChrome.WindowChrome>
                    <WindowChrome GlassFrameThickness="0"
                                  CornerRadius="0"
                                  CaptionHeight="0"/>
                </WindowChrome.WindowChrome>
                

                מצו"ב על הדרך קוד לuserform עם אפשרות דומה לחלון של הגדלה וגרירה (לא מושלם אבל עובד)

                using System.Windows;
                using System.Windows.Controls;
                using System.Windows.Input;
                
                namespace newresizableusercontrol
                {
                    public partial class MainWindow : Window
                    {
                        private enum HitType
                        {
                            None, Body, UL, UR, LR, LL, L, R, B, T
                        };
                
                        private HitType MouseHitType = HitType.None;
                        private bool DragInProgress = false;
                        private Point LastPoint;
                
                        public MainWindow()
                        {
                            InitializeComponent();
                        }
                
                        private HitType SetHitType(Grid grid, Point point)
                        {
                            double left = Canvas.GetLeft(grid);
                            double top = Canvas.GetTop(grid);
                            double right = left + grid.Width;
                            double bottom = top + grid.Height;
                            const double GAP = 10;
                
                            if (point.X < left || point.X > right || point.Y < top || point.Y > bottom)
                                return HitType.None;
                
                            if (point.X - left < GAP)
                            {
                                if (point.Y - top < GAP) return HitType.UL;
                                if (bottom - point.Y < GAP) return HitType.LL;
                                return HitType.L;
                            }
                            else if (right - point.X < GAP)
                            {
                                if (point.Y - top < GAP) return HitType.UR;
                                if (bottom - point.Y < GAP) return HitType.LR;
                                return HitType.R;
                            }
                
                            if (point.Y - top < GAP) return HitType.T;
                            if (bottom - point.Y < GAP) return HitType.B;
                            return HitType.Body;
                        }
                
                        private void SetMouseCursor()
                        {
                            Cursor desiredCursor = Cursors.Arrow;
                
                            switch (MouseHitType)
                            {
                                case HitType.None:
                                    desiredCursor = Cursors.Arrow;
                                    break;
                                case HitType.Body:
                                    desiredCursor = Cursors.ScrollAll;
                                    break;
                                case HitType.UL:
                                case HitType.LR:
                                    desiredCursor = Cursors.SizeNWSE;
                                    break;
                                case HitType.LL:
                                case HitType.UR:
                                    desiredCursor = Cursors.SizeNESW;
                                    break;
                                case HitType.T:
                                case HitType.B:
                                    desiredCursor = Cursors.SizeNS;
                                    break;
                                case HitType.L:
                                case HitType.R:
                                    desiredCursor = Cursors.SizeWE;
                                    break;
                            }
                
                            if (Cursor != desiredCursor) Cursor = desiredCursor;
                        }
                
                        private void canvas1_MouseDown(object sender, MouseButtonEventArgs e)
                        {
                            MouseHitType = SetHitType(rectangle1, e.GetPosition(canvas1));
                            SetMouseCursor();
                            if (MouseHitType == HitType.None) return;
                
                            LastPoint = e.GetPosition(canvas1);
                            DragInProgress = true;
                        }
                
                        private void canvas1_MouseMove(object sender, MouseEventArgs e)
                        {
                            if (DragInProgress)
                            {
                                Point point = e.GetPosition(canvas1);
                                double offsetX = point.X - LastPoint.X;
                                double offsetY = point.Y - LastPoint.Y;
                
                                double newX = Canvas.GetLeft(rectangle1);
                                double newY = Canvas.GetTop(rectangle1);
                                double newWidth = rectangle1.Width;
                                double newHeight = rectangle1.Height;
                
                                switch (MouseHitType)
                                {
                                    case HitType.Body:
                                        newX += offsetX;
                                        newY += offsetY;
                                        break;
                                    case HitType.UL:
                                        newX += offsetX;
                                        newY += offsetY;
                                        newWidth -= offsetX;
                                        newHeight -= offsetY;
                                        break;
                                    case HitType.UR:
                                        newY += offsetY;
                                        newWidth += offsetX;
                                        newHeight -= offsetY;
                                        break;
                                    case HitType.LR:
                                        newWidth += offsetX;
                                        newHeight += offsetY;
                                        break;
                                    case HitType.LL:
                                        newX += offsetX;
                                        newWidth -= offsetX;
                                        newHeight += offsetY;
                                        break;
                                    case HitType.L:
                                        newX += offsetX;
                                        newWidth -= offsetX;
                                        break;
                                    case HitType.R:
                                        newWidth += offsetX;
                                        break;
                                    case HitType.B:
                                        newHeight += offsetY;
                                        break;
                                    case HitType.T:
                                        newY += offsetY;
                                        newHeight -= offsetY;
                                        break;
                                }
                
                                if ((newWidth > 0) && (newHeight > 0))
                                {
                                    Canvas.SetLeft(rectangle1, newX);
                                    Canvas.SetTop(rectangle1, newY);
                                    rectangle1.Width = newWidth;
                                    rectangle1.Height = newHeight;
                                    LastPoint = point;
                                }
                            }
                            else
                            {
                                MouseHitType = SetHitType(rectangle1, e.GetPosition(canvas1));
                                SetMouseCursor();
                            }
                        }
                
                        private void canvas1_MouseUp(object sender, MouseButtonEventArgs e)
                        {
                            DragInProgress = false;
                        }
                    }
                }
                
                

                היה מעניין אבל מרגיש לי קצת בזבוז זמן. שוין.

                גמ"ח מידע מחשבים ואופיס

                תגובה 1 תגובה אחרונה
                0

                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום