Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Can Someone hazard a guess?

Can Someone hazard a guess?

Scheduled Pinned Locked Moved The Lounge
csharplearningvisual-studiowpfwinforms
27 Posts 15 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • realJSOPR Offline
    realJSOPR Offline
    realJSOP
    wrote on last edited by
    #1

    ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

    "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
    -----
    "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

    M N E R R 12 Replies Last reply
    0
    • realJSOPR realJSOP

      ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

      "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
      -----
      "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

      M Offline
      M Offline
      Michael Bookatz
      wrote on last edited by
      #2

      You know I get the feeling you are really starting to love WPF in a sort of love hate relationship type of way. Maybe I shouldn't complain and be about the way dataGrid and DatagridView do things differently. It seems it could be a lot worse.

      D 1 Reply Last reply
      0
      • realJSOPR realJSOP

        ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

        "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
        -----
        "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

        N Offline
        N Offline
        Nish Nishant
        wrote on last edited by
        #3

        John Simmons / outlaw programmer wrote:

        WTF happened to Application.StartupPath in .Net 3.5?

        I guess you'll have to use Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar now.

        Regards, Nish


        Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
        My latest book : C++/CLI in Action / Amazon.com link

        1 Reply Last reply
        0
        • M Michael Bookatz

          You know I get the feeling you are really starting to love WPF in a sort of love hate relationship type of way. Maybe I shouldn't complain and be about the way dataGrid and DatagridView do things differently. It seems it could be a lot worse.

          D Offline
          D Offline
          Dan Neely
          wrote on last edited by
          #4

          in that case; because datagrid was a steaming pile of fail and they wanted to make as clean break as possible.

          Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

          M 1 Reply Last reply
          0
          • realJSOPR realJSOP

            ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

            "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
            -----
            "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

            N Offline
            N Offline
            Nish Nishant
            wrote on last edited by
            #5

            John Simmons / outlaw programmer wrote:

            Instead of Label.Text, we have Label.Content

            The WPF equivalent of the WinForms Label control is actually TextBlock (which has a Text property). The WPF Label is actually a heavier more complex control - so wherever you used a Label in WinForms, in WPF you should be using TextBlock.

            Regards, Nish


            Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
            My latest book : C++/CLI in Action / Amazon.com link

            M 1 Reply Last reply
            0
            • D Dan Neely

              in that case; because datagrid was a steaming pile of fail and they wanted to make as clean break as possible.

              Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

              M Offline
              M Offline
              Michael Bookatz
              wrote on last edited by
              #6

              So what do you use instead of Datagrid?

              D 1 Reply Last reply
              0
              • N Nish Nishant

                John Simmons / outlaw programmer wrote:

                Instead of Label.Text, we have Label.Content

                The WPF equivalent of the WinForms Label control is actually TextBlock (which has a Text property). The WPF Label is actually a heavier more complex control - so wherever you used a Label in WinForms, in WPF you should be using TextBlock.

                Regards, Nish


                Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                My latest book : C++/CLI in Action / Amazon.com link

                M Offline
                M Offline
                Michael Bookatz
                wrote on last edited by
                #7

                Nishant Sivakumar wrote:

                The WPF equivalent of the WinForms Label control is actually TextBlock (which has a Text property). The WPF Label is actually a heavier more complex control - so wherever you used a Label in WinForms, in WPF you should be using TextBlock.

                SO why not have the new heavier control called TextBlock a new name not used before! Why confuse what everyone knows to be the standard!

                C 1 Reply Last reply
                0
                • realJSOPR realJSOP

                  ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                  -----
                  "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                  E Offline
                  E Offline
                  Electron Shepherd
                  wrote on last edited by
                  #8

                  John Simmons / outlaw programmer wrote:

                  of Label.Text, we have Label.Content

                  Presumably becuase it can (or might in the future) have "non-text" stuff in it (HTML etc) *

                  John Simmons / outlaw programmer wrote:

                  instead of Control.Enable, we got Control.IsEnabed

                  This one makes sense to me. Enable is a verb (method) wheras IsEnabled is a state (property) * I don't do any WPF work, so the control may already support formatted content for all I know.

                  Server and Network Monitoring

                  B 1 Reply Last reply
                  0
                  • realJSOPR realJSOP

                    ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                    "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                    -----
                    "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                    R Offline
                    R Offline
                    Rama Krishna Vavilala
                    wrote on last edited by
                    #9

                    John Simmons / outlaw programmer wrote:

                    Instead of Label.Text, we have Label.Content

                    That's because the Label is not restricted to only to text. It can contain arbitary content.

                    John Simmons / outlaw programmer wrote:

                    instead of Control.Enable, we got Control.IsEnabled.

                    No idea on that one.

                    John Simmons / outlaw programmer wrote:

                    WTF happened to Application.StartupPath in .Net 3.5?

                    It's there. You need to look at the right "Application".

                    John Simmons / outlaw programmer wrote:

                    that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                    For the same reason you had to use System.WIndows.Timer in windows forms or use SetTimer in MFC (as opposed to CreateTimerQueuTimer).

                    N 1 Reply Last reply
                    0
                    • realJSOPR realJSOP

                      ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                      "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                      -----
                      "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                      R Offline
                      R Offline
                      Rohde
                      wrote on last edited by
                      #10

                      It is because composition is a big part of WPF. Between a WPF label's opening and closing tag you can have not only text but any content like images etc. Therefore a property name of Content makes more sense.


                      "When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
                      -Atlas Shrugged, Ayn Rand

                      1 Reply Last reply
                      0
                      • R Rama Krishna Vavilala

                        John Simmons / outlaw programmer wrote:

                        Instead of Label.Text, we have Label.Content

                        That's because the Label is not restricted to only to text. It can contain arbitary content.

                        John Simmons / outlaw programmer wrote:

                        instead of Control.Enable, we got Control.IsEnabled.

                        No idea on that one.

                        John Simmons / outlaw programmer wrote:

                        WTF happened to Application.StartupPath in .Net 3.5?

                        It's there. You need to look at the right "Application".

                        John Simmons / outlaw programmer wrote:

                        that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                        For the same reason you had to use System.WIndows.Timer in windows forms or use SetTimer in MFC (as opposed to CreateTimerQueuTimer).

                        N Offline
                        N Offline
                        Nish Nishant
                        wrote on last edited by
                        #11

                        Rama Krishna Vavilala wrote:

                        It's there. You need to look at the right "Application".

                        Rama, do you mean the one in System.Windows? If so, it doesn't have a StartupPath property. Or is there a different one available in some other assembly/namespace?

                        Regards, Nish


                        Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                        My latest book : C++/CLI in Action / Amazon.com link

                        P R 2 Replies Last reply
                        0
                        • realJSOPR realJSOP

                          ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                          "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                          -----
                          "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                          P Offline
                          P Offline
                          Pete OHanlon
                          wrote on last edited by
                          #12

                          John Simmons / outlaw programmer wrote:

                          And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5?

                          You can still use it - but you have to add a reference to System.Windows.Forms - it's a Forms method.

                          "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                          As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                          My blog | My articles | MoXAML PowerToys

                          N 1 Reply Last reply
                          0
                          • N Nish Nishant

                            Rama Krishna Vavilala wrote:

                            It's there. You need to look at the right "Application".

                            Rama, do you mean the one in System.Windows? If so, it doesn't have a StartupPath property. Or is there a different one available in some other assembly/namespace?

                            Regards, Nish


                            Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                            My latest book : C++/CLI in Action / Amazon.com link

                            P Offline
                            P Offline
                            Pete OHanlon
                            wrote on last edited by
                            #13

                            Nishant Sivakumar wrote:

                            Rama, do you mean the one in System.Windows? If so, it doesn't have a StartupPath property. Or is there a different one available in some other assembly/namespace?

                            See my answer below.

                            "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                            As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                            My blog | My articles | MoXAML PowerToys

                            1 Reply Last reply
                            0
                            • realJSOPR realJSOP

                              ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                              -----
                              "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                              L Offline
                              L Offline
                              Lost User
                              wrote on last edited by
                              #14

                              For the same reason the Winforms Webbrowser changed from Text to DocumenText. X|

                              Visit http://www.notreadytogiveup.com/[^] and do something special today.

                              1 Reply Last reply
                              0
                              • N Nish Nishant

                                Rama Krishna Vavilala wrote:

                                It's there. You need to look at the right "Application".

                                Rama, do you mean the one in System.Windows? If so, it doesn't have a StartupPath property. Or is there a different one available in some other assembly/namespace?

                                Regards, Nish


                                Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                                My latest book : C++/CLI in Action / Amazon.com link

                                R Offline
                                R Offline
                                Rama Krishna Vavilala
                                wrote on last edited by
                                #15

                                John is probably confused between System.Windows.Forms.Application (WinForms + has StartupPath) and System.Windows.Application (WPF). Both are different.

                                N 1 Reply Last reply
                                0
                                • P Pete OHanlon

                                  John Simmons / outlaw programmer wrote:

                                  And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5?

                                  You can still use it - but you have to add a reference to System.Windows.Forms - it's a Forms method.

                                  "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                                  As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                                  My blog | My articles | MoXAML PowerToys

                                  N Offline
                                  N Offline
                                  Nish Nishant
                                  wrote on last edited by
                                  #16

                                  Pete O'Hanlon wrote:

                                  You can still use it - but you have to add a reference to System.Windows.Forms - it's a Forms method.

                                  Nice, though I probably won't do it that way to avoid the WinForms reference. That just uses GetModuleFileName anyway.

                                  Regards, Nish


                                  Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                                  My latest book : C++/CLI in Action / Amazon.com link

                                  P 1 Reply Last reply
                                  0
                                  • R Rama Krishna Vavilala

                                    John is probably confused between System.Windows.Forms.Application (WinForms + has StartupPath) and System.Windows.Application (WPF). Both are different.

                                    N Offline
                                    N Offline
                                    Nish Nishant
                                    wrote on last edited by
                                    #17

                                    Rama Krishna Vavilala wrote:

                                    John is probably confused between System.Windows.Forms.Application (WinForms + has StartupPath) and System.Windows.Application (WPF). Both are different.

                                    Ah okay. You meant that he didn't realize that this is a whole new class.

                                    Regards, Nish


                                    Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                                    My latest book : C++/CLI in Action / Amazon.com link

                                    1 Reply Last reply
                                    0
                                    • N Nish Nishant

                                      Pete O'Hanlon wrote:

                                      You can still use it - but you have to add a reference to System.Windows.Forms - it's a Forms method.

                                      Nice, though I probably won't do it that way to avoid the WinForms reference. That just uses GetModuleFileName anyway.

                                      Regards, Nish


                                      Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
                                      My latest book : C++/CLI in Action / Amazon.com link

                                      P Offline
                                      P Offline
                                      Pete OHanlon
                                      wrote on last edited by
                                      #18

                                      Indeed - I actually use this:

                                      public static class Utility
                                      {
                                      [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
                                      public static extern int GetModuleFileName(HandleRef hModule, StringBuilder buffer, int length);

                                      private static string startupPath;
                                      private static HandleRef NullHandleRef = new HandleRef();

                                      public static string StartupPath()
                                      {
                                      if (startupPath == null)
                                      {
                                      StringBuilder buffer = new StringBuilder(260);
                                      GetModuleFileName(NullHandleRef, buffer, buffer.Capacity);
                                      startupPath = Path.GetDirectoryName(buffer.ToString());
                                      }
                                      new FileIOPermission(FileIOPermissionAccess.PathDiscovery, startupPath).Demand();
                                      return startupPath;
                                      }
                                      }

                                      God bless Reflector.

                                      "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                                      As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                                      My blog | My articles | MoXAML PowerToys

                                      1 Reply Last reply
                                      0
                                      • M Michael Bookatz

                                        So what do you use instead of Datagrid?

                                        D Offline
                                        D Offline
                                        Dan Neely
                                        wrote on last edited by
                                        #19

                                        DataGridView. DataGrid was the 1.0 framework attempt at the same. it sucked massively.

                                        Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                                        T 1 Reply Last reply
                                        0
                                        • realJSOPR realJSOP

                                          ...as to why Microsoft saw fit to change (arbitrarily, it seems) the properties for WPF controls. Instead of Label.Text, we have Label.Content, and instead of Control.Enable, we got Control.IsEnabled. It's almost as if they're introducing an artificial and arbitrary learning curve. Is there a book or web site that talks about the differences in ALL the controls regarding WPF vs WinForms)? And while I'm complaining, WTF happened to Application.StartupPath in .Net 3.5? And imagine my surprise to find out that I have to use the DispatchTimer class instead of the System.Timers.Timer class...

                                          "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                                          -----
                                          "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                                          P Offline
                                          P Offline
                                          peterchen
                                          wrote on last edited by
                                          #20

                                          Developed by a different team. Such differences are usually a mix of different style guide lines (e.g. "All boolean properties should start with Is, Are, or Can"), different tastes ("X always irked me, I'd prefer Y"), and ignorance ("We are the cool guys, why should we know WinForms at all?")

                                          Burning Chrome ^ | Linkify!| FoldWithUs! | sighist

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups