Difference between revisions of "Silverlight"

From Richard's Wiki
Jump to: navigation, search
Line 4: Line 4:
 
* [http://joel.neubeck.net/2009/07/silverlight-3-drag-behavior/ Silverlight 3 Drag Behavior] (using WriteableBitmap())
 
* [http://joel.neubeck.net/2009/07/silverlight-3-drag-behavior/ Silverlight 3 Drag Behavior] (using WriteableBitmap())
 
* [http://www.mostlydevelopers.com/mostlydevelopers/blog/post/2008/08/11/Call-Javascript-Method-from-Silverlight-and-Vice-Versa.aspx Call Javascript Method from Silverlight and Vice Versa]
 
* [http://www.mostlydevelopers.com/mostlydevelopers/blog/post/2008/08/11/Call-Javascript-Method-from-Silverlight-and-Vice-Versa.aspx Call Javascript Method from Silverlight and Vice Versa]
* [http://blogs.msdn.com/brada/archive/2010/03/15/silverlight-4-ria-services-ready-for-business-index.aspx Silverlight 4 + RIA Services - Ready for Business: Index]
+
* [http://blogs.msdn.com/brada/archive/2010/03/15/silverlight-4-ria-services-ready-for-business-index.aspx Silverlight 4 + RIA Services - Ready for Business: Index (excellent introduction)]
 +
* To fix problem with default Silverlight BusinessApplication template generated projects and Windows authentication, override the AuthenticationService GetAuthenticatedUser method in the web project, like this:
 +
<code>
 +
        // Have to override GetAuthenticatedUser when using Windows authentication.
 +
        // Even when Windows auth is defined, the auth subsystem insists on looking for an
 +
        // AspNetProvider SQL database. Code below gets the user informaation from the
 +
        // principal in the WIndows Auth case.
 +
        protected override User GetAuthenticatedUser(System.Security.Principal.IPrincipal principal)
 +
        {
 +
            User user = new User();
 +
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
 +
            SystemWebSectionGroup grp = (SystemWebSectionGroup)config.GetSectionGroup("system.web");
 +
            AuthenticationSection auth = grp.Authentication;
 +
            if (auth.Mode == AuthenticationMode.Forms)
 +
            {
 +
                user = base.GetAuthenticatedUser(principal);
 +
            }
 +
            else if (auth.Mode == AuthenticationMode.Windows)
 +
            {
 +
                string[] a = principal.Identity.Name.Split('\\');
 +
                //System.DirectoryServices.DirectoryEntry ADEntry = new System.DirectoryServices.DirectoryEntry("WinNT://" + a[0] + "/" + a[1]);
 +
                //string Name = ADEntry.Properties["FullName"].Value.ToString();
 +
                user.Name = a[a.Length-1];
 +
            }
 +
            return user;
 +
        }
 +
</code>
 
* Dropshadow effect (in Resources):
 
* Dropshadow effect (in Resources):
 
<code>
 
<code>

Revision as of 19:29, 13 May 2010

       // Have to override GetAuthenticatedUser when using Windows authentication.
       // Even when Windows auth is defined, the auth subsystem insists on looking for an
       // AspNetProvider SQL database. Code below gets the user informaation from the 
       // principal in the WIndows Auth case.
       protected override User GetAuthenticatedUser(System.Security.Principal.IPrincipal principal)
       {
           User user = new User();
           Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
           SystemWebSectionGroup grp = (SystemWebSectionGroup)config.GetSectionGroup("system.web");
           AuthenticationSection auth = grp.Authentication;
           if (auth.Mode == AuthenticationMode.Forms)
           {
               user = base.GetAuthenticatedUser(principal);
           }
           else if (auth.Mode == AuthenticationMode.Windows)
           {
               string[] a = principal.Identity.Name.Split('\\');
               //System.DirectoryServices.DirectoryEntry ADEntry = new System.DirectoryServices.DirectoryEntry("WinNT://" + a[0] + "/" + a[1]);
               //string Name = ADEntry.Properties["FullName"].Value.ToString();
               user.Name = a[a.Length-1];
           }
           return user;
       }

  • Dropshadow effect (in Resources):

<DropShadowEffect x:Key="DropShadow"  
               BlurRadius="15" 
               Color="Black" 
               Direction="320"
               Opacity="1.0"
               ShadowDepth="10" />

    • To use (in xaml):

Effect="{StaticResource DropShadow}"

    • To use (in .cs):

 control.Effect = Application.Current.Resources["DropShadow"] as System.Windows.Media.Effects.Effect

  • To get position of a UIElement:

// Obtain transform information based off root element
UIElement element = this as UIElement;
GeneralTransform gt = element.TransformToVisual(Application.Current.RootVisual);
// Find the four corners of the element
Point topLeft = gt.Transform(new Point(0, 0));
Point topRight = gt.Transform(new Point(element.RenderSize.Width, 0));
Point bottomLeft = gt.Transform(new Point(0, element.RenderSize.Height));
Point bottomRight = gt.Transform(new Point(element.RenderSize.Width, element.RenderSize.Height));

Silverlight & CAL (PRISM)

Silverlight Control Libraries