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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. WinForms: צל לטופס ללא גבולות

WinForms: צל לטופס ללא גבולות

מתוזמן נעוץ נעול הועבר ארכיון code613m
10 פוסטים 2 כותבים 678 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • רחמיםר מנותק
    רחמיםר מנותק
    רחמים מורחק
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טופס בצורת עיגול ע''י שהרקע של העיגול הוא בצבע אדום למשל והגדרתי את הצבע האדום כצבע שיהיה שקוף את הגבולות הגדרתי - ללא, וכך הטופס נראה עגול , השאלה שלי איך אפשר שיהיה צל לעיגול הזה כדרך שיש צל לטופס כאשר יש לו גבולות?
    תודה לכולם.

    פורסם במקור בפורום CODE613 ב12/08/2013 09:04 (+03:00)

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

      "קובנציונאלית" אי אפשר.
      אפשר לעשות רשת צבע גסה בתמונת הרקע בקצוות, אבל מניסיוני זה רחוק מלהיראות טוב.

      כנראה זה עוד מעלה לWPF...

      פורסם במקור בפורום CODE613 ב12/08/2013 21:37 (+03:00)

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

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

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

        @דוד ל.ט.

        "קובנציונאלית" אי אפשר.

        לא הבנתי כוונתך.

        מצאתי כמה קודים ברשת וחיברתי אותם לדבר אחד, התוצאה פתח גדול ליצירת טופס בכל צורה שיעלה על הדעת עם צל!

        Imports System.Drawing
        Imports System.Drawing.Drawing2D
        Imports System.Drawing.Imaging
        
        Public Class Form1
        
            Private WithEvents HS, VS As New HScrollBar
        
            Private Sub HScrollBars_Scroll(ByVal Sender As System.Object,
                                           ByVal E As System.Windows.Forms.ScrollEventArgs)
                Dim Gp As New GraphicsPath
                Dim WX, HY As Integer
                WX = Me.Width
                HY = Me.Height
                Dim Points(11) As Point
                Points(0) = New Point(0, HS.Value)
                Points(1) = New Point((HS.Value / VS.Value), (HS.Value / VS.Value))
                Points(2) = New Point(HS.Value, 0)
                Points(3) = New Point((WX - HS.Value), 0)
                Points(4) = New Point((WX - (HS.Value / VS.Value)), (HS.Value / VS.Value))
                Points(5) = New Point(WX, HS.Value)
                Points(6) = New Point(WX, (HY - HS.Value))
                Points(7) = New Point((WX - (HS.Value / VS.Value)), (HY - (HS.Value / VS.Value)))
                Points(8) = New Point((WX - HS.Value), HY)
                Points(9) = New Point(HS.Value, HY)
                Points(10) = New Point((HS.Value / VS.Value), (HY - (HS.Value / VS.Value)))
                Points(11) = New Point(0, (HY - HS.Value))
                For I As Integer = 0 To 11 Step 3
                    Gp.AddCurve(New Point() {Points(I), Points(I + 1), Points(I + 2)})
                Next
                Me.Region = New Region(Gp)
                Gp.Dispose()
            End Sub
        
        
            Private Sub Form1_Load(ByVal Sender As System.Object, ByVal E As System.EventArgs) Handles MyBase.Load
                HS.Minimum = 1
                VS.Minimum = 2
                HS.Maximum = 100
                VS.Maximum = 25
                HS.Size = New Size(100, 20)
                VS.Size = New Size(100, 20)
                HS.Location = New Point(CInt((Width - 100) / 2), 0)
                VS.Location = New Point(CInt((Width - 100) / 2), 25)
                AddHandler HS.Scroll, AddressOf HScrollBars_Scroll
                AddHandler VS.Scroll, AddressOf HScrollBars_Scroll
                Me.Controls.AddRange(New Control() {HS, VS})
            End Sub
        
            Dim CS_DROPSHADOW As Integer = 131072
        
            Protected Overrides ReadOnly Property CreateParams As CreateParams
                Get
        
                    ' add the drop shadow flag for automatically drawing
                    ' a drop shadow around the form
                    Dim cp As CreateParams = MyBase.CreateParams
                    cp.ClassStyle = (cp.ClassStyle Or CS_DROPSHADOW)
                    Return cp
                End Get
            End Property
        
        End Class
        

        פורסם במקור בפורום CODE613 ב12/08/2013 22:29 (+03:00)

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

          יפה מאוד!

          כוונתי הייתה שזה לא מאפיין וגמרנו.
          אבל לא חלמתי על קוד כה קצר.
          עכ"פ בWPF זה עוד יותר פשוט 🙂 ללא שורת קוד בודדת.

          פורסם במקור בפורום CODE613 ב12/08/2013 22:59 (+03:00)

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

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

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

            @דוד ל.ט.

            עכ"פ בWPF זה עוד יותר פשוט ללא שורת קוד בודדת.

            אפשר דוגמא? תודה.

            פורסם במקור בפורום CODE613 ב13/08/2013 00:31 (+03:00)

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

              @רחמים

              אפשר דוגמא? תודה.

              הייתי עסוק, אז לא הספקתי להעלות.
              הנה קוד XAML:

              <Window x:Class="Window1"
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                  WindowStyle="None"
                  AllowsTransparency="True"
                  Background="Transparent"
                  Title="Window1" Height="325" Width="325">
                  <Canvas Margin="10">
                      <Canvas.Effect>
                          <DropShadowEffect BlurRadius="15"  />
                      </Canvas.Effect>
                      <Ellipse  Fill="Bisque" Width="300" Height="300" >
                      </Ellipse>
                      <Grid Height="300" Width="300" >
                          <Button Content="Button" HorizontalAlignment="Left" Margin="204,33,0,0" VerticalAlignment="Top" Width="75"/>
                      </Grid>
                  </Canvas>
              </Window>
              

              תמונה/קובץ מצורף לא נמצא

              פורסם במקור בפורום CODE613 ב14/08/2013 22:27 (+03:00)

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

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

              תגובה 1 תגובה אחרונה
              0
              • רחמיםר מנותק
                רחמיםר מנותק
                רחמים מורחק
                כתב ב נערך לאחרונה על ידי
                #7

                @דוד ל.ט.

                זה נותן כזה חלון:

                אצלי זה נתן אליפסה -
                @דוד ל.ט.

                <Ellipse

                פורסם במקור בפורום CODE613 ב14/08/2013 23:11 (+03:00)

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

                  @רחמים

                  @דוד ל.ט.
                  זה נותן כזה חלון:

                  אצלי זה נתן אליפסה -
                  @דוד ל.ט.

                  <Ellipse

                  לא כ"כ הבנתי את כוונתך.
                  אבל אתגרה בך יותר..
                  הקוד הזה:

                  <Window x:Class="Window1"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      WindowStyle="None"
                      AllowsTransparency="True"
                      Background="Transparent"
                      Title="Window1" SizeToContent="WidthAndHeight"  >
                      <Grid Margin="25" Height="435" Width="362" >
                          <Grid.Effect>
                              <DropShadowEffect BlurRadius="15"  />
                          </Grid.Effect>
                          <Path Stretch="Fill" HorizontalAlignment="Left" Width="363" Fill="#FF99CDDE" >
                              <Path.Data>
                                  <PathGeometry Figures="M131.889 150.061v63.597h-27.256  c-20.079 0-36.343 16.263-36.343 36.342v181.711c0 20.078 16.264 36.34 36.343 36.34h290.734c20.078 0 36.345-16.262 36.345-36.34  V250c0-20.079-16.267-36.342-36.345-36.342h-27.254v-63.597c0-65.232-52.882-118.111-118.112-118.111  S131.889 84.828 131.889 150.061z M177.317 213.658v-63.597c0-40.157 32.525-72.685 72.683-72.685  c40.158 0 72.685 32.528 72.685 72.685v63.597H177.317z M213.658 313.599c0-20.078 16.263-36.341 36.342-36.341  s36.341 16.263 36.341 36.341c0 12.812-6.634 24.079-16.625 30.529c0 0 3.55 21.446 7.542 46.699  c0 7.538-6.087 13.625-13.629 13.625h-27.258c-7.541 0-13.627-6.087-13.627-13.625l7.542-46.699  C220.294 337.678 213.658 326.41 213.658 313.599z" FillRule="evenodd"/>
                              </Path.Data>
                          </Path>
                          <Button Content="נעל" HorizontalAlignment="Left"  VerticalAlignment="Top" Width="75" Margin="40,408,0,0"/>
                          <Button Content="פתח" HorizontalAlignment="Left"  VerticalAlignment="Top" Width="75" Margin="248,408,0,0"/>
                      </Grid>
                  </Window>
                  

                  נותן את XY (אני מפחד שלא תאהב את ההגדרה) הנראה כך:

                  שים לב שאת מפת הנקודות של הpath לא כתבתי ידנית.
                  אני נעזרתי בהמרה מSVG לXAML ע"י התוכנה inkspace,
                  אבל אפשר לצייר ישירות בBlend של מיקרוספט.

                  אפשר להרשים הרבה יותר, רק שאני לא כ"כ כשרוני בזה ולא כ"כ פנוי.

                  תמונה/קובץ מצורף לא נמצא

                  פורסם במקור בפורום CODE613 ב15/08/2013 12:00 (+03:00)

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

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

                  תגובה 1 תגובה אחרונה
                  0
                  • רחמיםר מנותק
                    רחמיםר מנותק
                    רחמים מורחק
                    כתב ב נערך לאחרונה על ידי
                    #9

                    באמת מרשים!
                    @דוד ל.ט.

                    שים לב שאת מפת הנקודות של הpath לא כתבתי ידנית.
                    אני נעזרתי בהמרה מSVG לXAML ע"י התוכנה inkspace,
                    אבל אפשר לצייר ישירות בBlend של מיקרוספט.

                    אם תוכל להרחיב קצת אודות inkspace ו בBlend

                    פורסם במקור בפורום CODE613 ב15/08/2013 13:09 (+03:00)

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

                      אין מה להרחיב.
                      התוכנה inkspace זו תוכנת גרפיקה וקטורית חינמית נראה לי, תוכנה ברמה, עם עברית.
                      בשמירה בשם יש אפשרות לייצא לXAML.

                      התוכנה Blend זה בעצם כמה תוכנות. בתשלום, ושל מיקרוסופט.
                      המוכרת זה Expression. היא ייעודית לXAML.
                      בכל אופן בתוכנה הזו אפשר לצייר ולקבל את הXAML.

                      פורסם במקור בפורום CODE613 ב15/08/2013 13:25 (+03:00)

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

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

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD dovid התייחס לנושא זה ב

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

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

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