WPF and XAML - HOWTO: Difference between revisions

From Yggenyk
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:
* [http://www.sellsbrothers.com/Posts/Details/2091 Show Me The Template]
* [http://www.sellsbrothers.com/Posts/Details/2091 Show Me The Template]


====Visual Studio Designer====
=Visual Studio Designer=
==Troubleshooting WPF and Silverlight Designer Load Failures==
==Troubleshooting WPF and Silverlight Designer Load Failures==
http://msdn.microsoft.com/en-us/library/ff356886(VS.95).aspx
http://msdn.microsoft.com/en-us/library/ff356886(VS.95).aspx
Line 21: Line 21:
Note: You can click Stop Debugging in the second instance of Visual Studio and the first instance keeps running
Note: You can click Stop Debugging in the second instance of Visual Studio and the first instance keeps running


====XAML====
=XAML=
==Standard Date and Time Format Strings==
==Standard Date and Time Format Strings==
* [http://msdn.microsoft.com/en-us/library/az4se3k1.aspx Standard Date and Time Format Strings]
* [http://msdn.microsoft.com/en-us/library/az4se3k1.aspx Standard Date and Time Format Strings]

Revision as of 06:38, 17 September 2014

Tools

Show Me The Template is a great tool for looking at default control templates

Visual Studio Designer

Troubleshooting WPF and Silverlight Designer Load Failures

http://msdn.microsoft.com/en-us/library/ff356886(VS.95).aspx

Debugging a Designer Load Failure

To debug a designer load failure

  1. Open a second instance of Visual Studio.
  2. From the Debug menu, choose Attach to Process.
    The Attach To Process dialog box opens.
  3. In the Available Processes section, select the instance of devenv.exe that is loading your XAML and click Attach.
    The Visual Studio debugger attaches to the selected devenv.exe instance.
  4. From the Debug menu, choose Exceptions.
    The Exceptions dialog box opens.
  5. In the Break when exception is list, find the Common Language Runtime Exceptions name, and then check the Thrown check box.
  6. Click OK.
  7. In the first Visual Studio instance that you are debugging, reload the XAML file.
    The second instance of Visual Studio opens and displays the load exception.

Note: You can click Stop Debugging in the second instance of Visual Studio and the first instance keeps running

XAML

Standard Date and Time Format Strings

Label without accelerator

<source lang="csharp">

  <Label>
     <ContentPresenter RecognizesAccessKey="False" Content="_123">
     </ContentPresenter>
  </Label>

</source>

Virtualizing an ItemsControl

   <Style x:Key="ItemsControlVirtualisedStyle"
          TargetType="ItemsControl">
       <Setter Property="VirtualizingStackPanel.IsVirtualizing"
               Value="True" />
       <Setter Property="VirtualizingPanel.IsVirtualizingWhenGrouping"
               Value="True" />
       <Setter Property="VirtualizingPanel.ScrollUnit"
               Value="Pixel" />
       <Setter Property="ScrollViewer.CanContentScroll"
               Value="True" />
       <Setter Property="ScrollViewer.PanningMode"
               Value="VerticalOnly" />
       <Setter Property="ItemsPanel">
           <Setter.Value>
               <ItemsPanelTemplate>
                   <VirtualizingStackPanel />
               </ItemsPanelTemplate>
           </Setter.Value>
       </Setter>
       <Setter Property="Template">
           <Setter.Value>
               <ControlTemplate TargetType="ItemsControl">
                   <Border BorderThickness="{TemplateBinding Border.BorderThickness}"
                           Padding="{TemplateBinding Control.Padding}"
                           BorderBrush="{TemplateBinding Border.BorderBrush}"
                           Background="{TemplateBinding Panel.Background}"
                           SnapsToDevicePixels="True">
                       <ScrollViewer Padding="{TemplateBinding Control.Padding}"
                                     HorizontalScrollBarVisibility="Disabled"
                                     Focusable="False">
                           <ItemsPresenter SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
                       </ScrollViewer>
                   </Border>
               </ControlTemplate>
           </Setter.Value>
       </Setter>
   </Style>

</source>

AffectsMeasure or AffectsArrange

id=siteTree