Quantcast
Channel: Extended WPF Toolkit™ Community Edition
Viewing all 4964 articles
Browse latest View live

Edited Issue: DateTimePicker allows invalid characters [18617]

$
0
0
Based on discussion:
http://wpftoolkit.codeplex.com/discussions/394911
 
"DateTimeUpDown: I have to manually insert the "/" and ":" and the control allow me to insert invalid values"
Comments: ** Comment from web user: emartin **

DateTimeUpDown keyboard input greatly improved in version 2.0


Edited Feature: Create a Window that we can apply a style [18982]

$
0
0
From a comment in documentation:
http://wpftoolkit.codeplex.com/wikipage?title=MessageBox&ANCHOR#C25621

Just like the MessageBox, but for a normal window.
Including the Maximimze, Minimize etc.
Comments: ** Comment from web user: emartin **

StylableWindow Implemented in version 2.0 (plus edition only)
ChildWindow is now also fully stylable (open source And Plus edition)

Commented Issue: Modal ChildWindow does not hold execution [18983]

$
0
0
Based on discussion:
http://wpftoolkit.codeplex.com/discussions/404174

The idea is to block the execution when the window is shown.
Does it make sens for a sub-window child ?
Comments: ** Comment from web user: emartin **

It is normal that the execution doesn't block.
I looked to push a new dispatcher frame, but this require elevated rights.

Commented Issue: Feature request + patch: PropertyGrid to support CategoryOrder [19308]

$
0
0
In real world scenarios you often do not want to display the settings or values of an object in a strict alphabetical order. Most of the time it is more appropriate to order your properties into categories and then display these categories in a logical order.

Now, you could either prepend a number to your category name like this:
1. General settings
2. Input settings
3. Brush properties
4. Color settings

or you could try hard to find category names so that their alphabetical order corresponds to their logical order:
* All general settings (?)
* All input settings (?)
* Brush properties
* Color settings

In most cases this won't be possible, though, and becoming especially nasty if you are going to localize your application to different languages.

Both solutions just won't do.

The _real_ solution consists of simply adding a new __CategoryOrderAttribute__ attribute and use it for all the properties needed to be sorted. I am using this attribute since WPF Toolkit v1.6.0, adding it to my code with every new release.

Only a few changes are actually required to add this feature to the current code (mostly one-liners & copy and paste). I attached a patch file to enable category ordering for the current version of WPF Toolkit 1.9.0.
Comments: ** Comment from web user: emartin **

This feature will be made open source in the next version (2.1)

Edited Issue: Feature request + patch: PropertyGrid to support CategoryOrder [19308]

$
0
0
In real world scenarios you often do not want to display the settings or values of an object in a strict alphabetical order. Most of the time it is more appropriate to order your properties into categories and then display these categories in a logical order.

Now, you could either prepend a number to your category name like this:
1. General settings
2. Input settings
3. Brush properties
4. Color settings

or you could try hard to find category names so that their alphabetical order corresponds to their logical order:
* All general settings (?)
* All input settings (?)
* Brush properties
* Color settings

In most cases this won't be possible, though, and becoming especially nasty if you are going to localize your application to different languages.

Both solutions just won't do.

The _real_ solution consists of simply adding a new __CategoryOrderAttribute__ attribute and use it for all the properties needed to be sorted. I am using this attribute since WPF Toolkit v1.6.0, adding it to my code with every new release.

Only a few changes are actually required to add this feature to the current code (mostly one-liners & copy and paste). I attached a patch file to enable category ordering for the current version of WPF Toolkit 1.9.0.

Edited Issue: SingleUpDown wrong min max values [19396]

$
0
0
SingleUpDown wrongly updates metadata.

It should be:

UpdateMetadata(typeof(SingleUpDown), 1f, float.NegativeInfinity, float.PositiveInfinity);

Instead of:
UpdateMetadata(typeof(SingleUpDown), 1f, float.PositiveInfinity, float.NegativeInfinity);

Edited Issue: Colour of PropertyGrid doesn't align with colour theme of Visual Studio [19560]

$
0
0
I have implemented a toolwindow with PropertyGrid from Extended WPF toolkit.
The propertyGrids colour doesn't align with the changed colour theme of Visual Studio.

I could change the Background of the PropertyGrid, but the list and sort button that comes with PropertyGrid doesn't changes it's colour.

Please refer the screenshot for the details

Updated Wiki: AvalonDock

$
0
0

AvalonDock (docking window control)

AvalonDock provides a system that allow developers to create customizable layouts using a window docking system similar to what is found in many popular integrated development environements (IDEs).

AvalonDock adheres to an MVVM design. The Model is represented by the classes contained in the Xceed.Wpf.AvalonDock.Layout namespace. The classes in this namespace are the layout elements in a layout model (for example LayoutAnchorable/LayoutDocument, LayoutAnchorablePane/LayoutDocumentPane, LayoutAnchorablePaneGroup/LayoutDocumentPaneGroup, etc.) that are used directly in XAML within a DockingManager to describe how the layout is composed.

The following example shows how to set up varioius layout elements in a DockingManager.

<local:DemoView x:Class="LiveExplorer.Samples.AvalonDock.Views.AvalonDockView"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:local="clr-namespace:LiveExplorer"
                 xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
                 xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
                 xmlns:s="clr-namespace:System;assembly=mscorlib">
   <Grid>
      <Grid.RowDefinitions>
         <RowDefinition Height="Auto" />
         <RowDefinition Height="*" />
      </Grid.RowDefinitions>

      <StackPanel Orientation="Horizontal" Margin="0,0,0,10">
         <TextBlock Text="Theme:" Margin="0,0,10,0" VerticalAlignment="Center"/>
         <ComboBox x:Name="_themeCombo" SelectedIndex="0" Width="200">
            <ComboBoxItem Content="Generic" />
            <ComboBoxItem Content="Aero">
               <ComboBoxItem.Tag>
                  <xcad:AeroTheme />
               </ComboBoxItem.Tag>
            </ComboBoxItem>
            <ComboBoxItem Content="VS2010">
               <ComboBoxItem.Tag>
                  <xcad:VS2010Theme />
               </ComboBoxItem.Tag>
            </ComboBoxItem>
            <ComboBoxItem Content="Metro">
               <ComboBoxItem.Tag>
                  <xcad:MetroTheme />
               </ComboBoxItem.Tag>
            </ComboBoxItem>
         </ComboBox>
      </StackPanel>

      <xcad:DockingManager Grid.Row="1" MaxHeight="425"
                           AllowMixedOrientation="True"
                           BorderBrush="Black"
                           BorderThickness="1"
                           Theme="{Binding ElementName=_themeCombo, Path=SelectedItem.Tag}">
         <xcad:DockingManager.DocumentHeaderTemplate>
            <DataTemplate>
               <StackPanel Orientation="Horizontal">
                  <Image Source="{Binding IconSource}" Margin="0,0,4,0"/>
                  <TextBlock Text="{Binding Title}" />
               </StackPanel>
            </DataTemplate>
         </xcad:DockingManager.DocumentHeaderTemplate>
         <xcad:LayoutRoot x:Name="_layoutRoot">
            <xcad:LayoutPanel Orientation="Horizontal">
               <xcad:LayoutAnchorablePane DockWidth="200">
                  <xcad:LayoutAnchorable ContentId="properties" Title="Properties" CanHide="False" CanClose="False"
                                            AutoHideWidth="240"
                                         IconSource="../Images/property-blue.png">
                     <xctk:PropertyGrid NameColumnWidth="110"
                        SelectedObject="{Binding ElementName=_layoutRoot, Path=LastFocusedDocument.Content}"/>
                  </xcad:LayoutAnchorable>
               </xcad:LayoutAnchorablePane>
               <xcad:LayoutDocumentPaneGroup >
                  <xcad:LayoutDocumentPane>
                     <xcad:LayoutDocument ContentId="document1" Title="Document 1" IconSource="../Images/document.png" >
                           <Button Content="Document 1 Content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                     </xcad:LayoutDocument>
                     <xcad:LayoutDocument ContentId="document2" Title="Document 2" IconSource="../Images/document.png">
                        <TextBox Text="Document 2 Content" AcceptsReturn="True"/>
                     </xcad:LayoutDocument>
                  </xcad:LayoutDocumentPane>
               </xcad:LayoutDocumentPaneGroup >
               <xcad:LayoutAnchorablePaneGroup DockWidth="125">
                  <xcad:LayoutAnchorablePane>
                     <xcad:LayoutAnchorable ContentId="alarms" Title="Alarms" IconSource="../Images/alarm-clock-blue.png" >
                        <ListBox>
                           <s:String>Alarm 1</s:String>
                           <s:String>Alarm 2</s:String>
                           <s:String>Alarm 3</s:String>
                        </ListBox>
                     </xcad:LayoutAnchorable>
                     <xcad:LayoutAnchorable ContentId="journal" Title="Journal" >
                        <RichTextBox>
                           <FlowDocument>
                              <Paragraph FontSize="14" FontFamily="Segoe">
                                 This is the content of the Journal Pane.
                                 <LineBreak/>
                                 A
                                 <Bold>RichTextBox</Bold> has been added here
                              </Paragraph>
                           </FlowDocument>
                        </RichTextBox>
                     </xcad:LayoutAnchorable>
                  </xcad:LayoutAnchorablePane>
               </xcad:LayoutAnchorablePaneGroup>
            </xcad:LayoutPanel>

            <xcad:LayoutRoot.LeftSide>
               <xcad:LayoutAnchorSide>
                  <xcad:LayoutAnchorGroup>
                     <xcad:LayoutAnchorable Title="Agenda" ContentId="agenda" IconSource="../Images/address-book-open.png">
                        <TextBlock Text="Agenda Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
                     </xcad:LayoutAnchorable>
                     <xcad:LayoutAnchorable Title="Contacts" ContentId="contacts" IconSource="../Images/address-book--pencil.png" >
                        <TextBlock Text="Contacts Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
                     </xcad:LayoutAnchorable>
                  </xcad:LayoutAnchorGroup>
               </xcad:LayoutAnchorSide>
            </xcad:LayoutRoot.LeftSide>
         </xcad:LayoutRoot>
      </xcad:DockingManager>
   </Grid>
</local:DemoView>


The view is represented by the classes contained in the Xceed.Wpf.AvalonDock.Controls namespace; these classes are a set of stylizable controls that show the user controls. The names of the view controls typically end with "Control" and correspond to a layout model class (for example, LayoutAnchorableControl is the view control that corresponds to LayoutAnchorable, which is the model element).

The DockingManager, which is contained in the Xceed.Wpf.AvalonDock namespace, uses various classes (such as the LayoutItem and its derived classes) to perform the role of the ViewModel, preparing the model to be consumed by the view.

There is only one logical tree, which has the DockingManager as its root. Even if a control is placed in a different window (i.e., an autohidden window or a floating window), it always belong to the same logical tree below the DockingManager.

The DockingManager class

The DockingManager class is the core control of AvalonDock. Its Layout property contains the layout composition that is represented by the classes in the Xceed.Wpf.AvalonDock.Layout namespace. The class arranges the panes it contains and also handles auto-hide windows and floating windows (panes in turn contain, directly or indirectly, the two types of "content" elements, namely, LayoutAnchorable and LayoutDocument elements). The DockingManager class also handles saving and restoring layouts.

Among other properties, the class provides several "Template" properties (e.g., AnchorableTitleTemplate/DocumentTitleTemplate, AnchorableHeaderTemplate/DocumentHeaderTemplate, etc.) that allow designers and developers to specify the template for the elements contained in the layout.

Layout model classes

The layout element classes are used within the layout model held in the Layout property of the DockingManager. The fundamental content-containing classes in AvalonDock are LayoutAnchorable and LayoutDocument; both of these classes derive from the LayoutContent class, which determines whether an element can close, float (be dragged and transformed into a floating window), etc.

An anchorable is typically the container of application controls and can be dragged away from its container pane (LayoutAnchorablePane) and repositioned into another pane. Anchorables are always contained in a pane, which can be either a LayoutAnchorablePane or a LayoutDocumentPane, whereas documents (class LayoutDocument) can only be contained in a LayoutDocumentPane. Anchorables can also be dragged to a border of the parent DockingManager, which causes them to appear above, below, to the left of, or to the right of all other anchorables or documents (except for autohide windows; see the LayoutAnchorSide / LayoutAnchorGroup section below for details). Anchorables can also be left in a floating state (LayoutAnchorableFloatingWindow). Unlike documents, anchorables can autohide, where their content collapses to one side of the docking manager and is represented only by a tab (see LayoutAnchorSide and LayoutAnchorGroup).

A document (LayoutDocument class) can be hosted only in a LayoutDocumentPane. This contrasts with the behavior of LayoutAnchorable, which can be hosted both in a LayoutDocumentPane and a LayoutAnchorablePane. Also, unlike anchorables, documents can't be anchored to a DockingManager border and can't be autohidden: they can only be positioned into a LayoutDocumentPane or floated in a LayoutDocumentFloatingWindow.

A LayoutAnchorableFloatingWindow or a LayoutDocumentFloatingWindow is created automatically when the end-user drags an anchorable over the DockingManager. Floating windows can also be created programmatically using the Float method).

LayoutContent-derived elements (LayoutAnchorable and LayoutDocument) are typically arranged as in a tab control. A LayoutAnchorablePane can be set to autohide and can be dragged over the DockingManager as floating window. A LayoutAnchorablePane can also be anchored to a border of the parent DockingManager (see LayoutAnchorSide for more details).

Unlike a LayoutAnchorablePane, a LayoutDocumentPane cannot be set to autohide or dragged over the DockingManager as floating window (although individual LayoutDocument elements can be floated). A LayoutAnchorablePane also can't be anchored to a border of the parent DockingManager.

A LayoutPanel can also contain "pane group" elements (i.e., LayoutAnchorablePaneGroup or LayoutDocumentPaneGroup), which group child panes together and allow various characteristics to be determined, such as the initial width/height the docked group occupies, the initial width/height of floating windows created from content dragged from them, and the orientation of the panes in the group (which is independent of the orientation of the LayoutPanel). LayoutAnchorablePaneGroup represents an element in the layout model that can contain and arrange multiple LayoutAnchorablePane elements, which in turn contain LayoutAnchorable elements. LayoutDocumentPaneGroup represents an element in the layout model that can contain and organize multiple LayoutDocumentPane elements, which in turn contain LayoutDocument elements. The "pane group" classes are primarily used to determine the orientation of the panes they contain.

LayoutRoot represents the root of the layout model. The Layout property of DockingManager is set to an instance of this class.

The RootPanel property of the LayoutRoot class is set to an instance of the LayoutPanel class.

A LayoutPanel can contain child panes directly (that is, LayoutAnchorablePane and LayoutDocumentPane). Panes in turn contain the actual content (that is, LayoutAnchorable or LayoutDocument elements, both of which derive from LayoutContent). A LayoutPanel can also contain "pane group" instances (i.e., LayoutAnchorablePaneGroup or LayoutDocumentPaneGroup), which group child panes together and allow various characteristics to be determined, such as the initial width/height the docked group occupies, the initial width/height of floating windows created from content dragged from them, and the orientation of the panes in the group (which is independent of the orientation of the LayoutPanel).

The LayoutRoot class provides four "Side" properties (e.g., LeftSide), which are used in conjunction with the LayoutAnchorSide and the LayoutAnchorGroup classes to set up autohide LayoutAnchorable elements along the border of the containing DockingManager. These elements are initially collapsed to the side to which they are anchored, displaying only a tab, and the "pin" glyph is pointing to the left. If the pin glyph of an autohide anchorable is clicked so that the pin is pointing down, the anchorable is no longer remains visible. Only LayoutAnchorable elements can be autohidden.

LayoutAnchorGroup represents an autohidden group of one or more LayoutAnchorable elements that can be anchored to one of the four sides of the DockingManager. To use LayoutAnchorGroup, add LayoutAnchorable elements to it, and add the resulting LayoutAnchorGroup to an instance of LayoutAnchorSide. The resulting LayoutAnchorSide is then assigned to a "Side" property (e.g., LeftSide, TopSide) of the LayoutRoot object held in the Layout property of DockingManager.

LayoutAnchorSide represents a "side" in a DockingManager. To use LayoutAnchorSide, add LayoutAnchorable elements to a LayoutAnchorGroup, and add the resulting LayoutAnchorGroup to an instance of LayoutAnchorSide. The resulting LayoutAnchorSide is then assigned to a "Side" property (e.g., LeftSide, TopSide) of the LayoutRoot object held in the Layout property of DockingManager.

Note: You can find complete documentation of the API here.

Support this project, check out the Plus Edition.

Updated Wiki: AvalonDock

$
0
0

AvalonDock (docking window control)

AvalonDock provides a system that allow developers to create customizable layouts using a window docking system similar to what is found in many popular integrated development environements (IDEs).

AvalonDock adheres to an MVVM design. The Model is represented by the classes contained in the Xceed.Wpf.AvalonDock.Layout namespace. The classes in this namespace are the layout elements in a layout model (for example LayoutAnchorable/LayoutDocument, LayoutAnchorablePane/LayoutDocumentPane, LayoutAnchorablePaneGroup/LayoutDocumentPaneGroup, etc.) that are used directly in XAML within a DockingManager to describe how the layout is composed.

The following example shows how to set up varioius layout elements in a DockingManager.

<local:DemoView x:Class="LiveExplorer.Samples.AvalonDock.Views.AvalonDockView"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:local="clr-namespace:LiveExplorer"
                 xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
                 xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
                 xmlns:s="clr-namespace:System;assembly=mscorlib">
   <Grid>
      <Grid.RowDefinitions>
         <RowDefinition Height="Auto" />
         <RowDefinition Height="*" />
      </Grid.RowDefinitions>

      <StackPanel Orientation="Horizontal" Margin="0,0,0,10">
         <TextBlock Text="Theme:" Margin="0,0,10,0" VerticalAlignment="Center"/>
         <ComboBox x:Name="_themeCombo" SelectedIndex="0" Width="200">
            <ComboBoxItem Content="Generic" />
            <ComboBoxItem Content="Aero">
               <ComboBoxItem.Tag>
                  <xcad:AeroTheme />
               </ComboBoxItem.Tag>
            </ComboBoxItem>
            <ComboBoxItem Content="VS2010">
               <ComboBoxItem.Tag>
                  <xcad:VS2010Theme />
               </ComboBoxItem.Tag>
            </ComboBoxItem>
            <ComboBoxItem Content="Metro">
               <ComboBoxItem.Tag>
                  <xcad:MetroTheme />
               </ComboBoxItem.Tag>
            </ComboBoxItem>
         </ComboBox>
      </StackPanel>

      <xcad:DockingManager Grid.Row="1" MaxHeight="425"
                           AllowMixedOrientation="True"
                           BorderBrush="Black"
                           BorderThickness="1"
                           Theme="{Binding ElementName=_themeCombo, Path=SelectedItem.Tag}">
         <xcad:DockingManager.DocumentHeaderTemplate>
            <DataTemplate>
               <StackPanel Orientation="Horizontal">
                  <Image Source="{Binding IconSource}" Margin="0,0,4,0"/>
                  <TextBlock Text="{Binding Title}" />
               </StackPanel>
            </DataTemplate>
         </xcad:DockingManager.DocumentHeaderTemplate>
         <xcad:LayoutRoot x:Name="_layoutRoot">
            <xcad:LayoutPanel Orientation="Horizontal">
               <xcad:LayoutAnchorablePane DockWidth="200">
                  <xcad:LayoutAnchorable ContentId="properties" Title="Properties" CanHide="False" CanClose="False"
                                            AutoHideWidth="240"
                                         IconSource="../Images/property-blue.png">
                     <xctk:PropertyGrid NameColumnWidth="110"
                        SelectedObject="{Binding ElementName=_layoutRoot, Path=LastFocusedDocument.Content}"/>
                  </xcad:LayoutAnchorable>
               </xcad:LayoutAnchorablePane>
               <xcad:LayoutDocumentPaneGroup >
                  <xcad:LayoutDocumentPane>
                     <xcad:LayoutDocument ContentId="document1" Title="Document 1" IconSource="../Images/document.png" >
                           <Button Content="Document 1 Content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                     </xcad:LayoutDocument>
                     <xcad:LayoutDocument ContentId="document2" Title="Document 2" IconSource="../Images/document.png">
                        <TextBox Text="Document 2 Content" AcceptsReturn="True"/>
                     </xcad:LayoutDocument>
                  </xcad:LayoutDocumentPane>
               </xcad:LayoutDocumentPaneGroup >
               <xcad:LayoutAnchorablePaneGroup DockWidth="125">
                  <xcad:LayoutAnchorablePane>
                     <xcad:LayoutAnchorable ContentId="alarms" Title="Alarms" IconSource="../Images/alarm-clock-blue.png" >
                        <ListBox>
                           <s:String>Alarm 1</s:String>
                           <s:String>Alarm 2</s:String>
                           <s:String>Alarm 3</s:String>
                        </ListBox>
                     </xcad:LayoutAnchorable>
                     <xcad:LayoutAnchorable ContentId="journal" Title="Journal" >
                        <RichTextBox>
                           <FlowDocument>
                              <Paragraph FontSize="14" FontFamily="Segoe">
                                 This is the content of the Journal Pane.
                                 <LineBreak/>
                                 A
                                 <Bold>RichTextBox</Bold> has been added here
                              </Paragraph>
                           </FlowDocument>
                        </RichTextBox>
                     </xcad:LayoutAnchorable>
                  </xcad:LayoutAnchorablePane>
               </xcad:LayoutAnchorablePaneGroup>
            </xcad:LayoutPanel>

            <xcad:LayoutRoot.LeftSide>
               <xcad:LayoutAnchorSide>
                  <xcad:LayoutAnchorGroup>
                     <xcad:LayoutAnchorable Title="Agenda" ContentId="agenda" IconSource="../Images/address-book-open.png">
                        <TextBlock Text="Agenda Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
                     </xcad:LayoutAnchorable>
                     <xcad:LayoutAnchorable Title="Contacts" ContentId="contacts" IconSource="../Images/address-book--pencil.png" >
                        <TextBlock Text="Contacts Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
                     </xcad:LayoutAnchorable>
                  </xcad:LayoutAnchorGroup>
               </xcad:LayoutAnchorSide>
            </xcad:LayoutRoot.LeftSide>
         </xcad:LayoutRoot>
      </xcad:DockingManager>
   </Grid>
</local:DemoView>


The view is represented by the classes contained in the Xceed.Wpf.AvalonDock.Controls namespace; these classes are a set of stylizable controls that show the user controls. The names of the view controls typically end with "Control" and correspond to a layout model class (for example, LayoutAnchorableControl is the view control that corresponds to LayoutAnchorable, which is the model element).

The DockingManager, which is contained in the Xceed.Wpf.AvalonDock namespace, uses various classes (such as the LayoutItem and its derived classes) to perform the role of the ViewModel, preparing the model to be consumed by the view.

There is only one logical tree, which has the DockingManager as its root. Even if a control is placed in a different window (i.e., an autohidden window or a floating window), it always belong to the same logical tree below the DockingManager.

The DockingManager class

The DockingManager class is the core control of AvalonDock. Its Layout property contains the layout composition that is represented by the classes in the Xceed.Wpf.AvalonDock.Layout namespace. The class arranges the panes it contains and also handles auto-hide windows and floating windows (panes in turn contain, directly or indirectly, the two types of "content" elements, namely, LayoutAnchorable and LayoutDocument elements). The DockingManager class also handles saving and restoring layouts.

Among other properties, the class provides several "Template" properties (e.g., AnchorableTitleTemplate/DocumentTitleTemplate, AnchorableHeaderTemplate/DocumentHeaderTemplate, etc.) that allow designers and developers to specify the template for the elements contained in the layout.

Layout model classes

The layout element classes are used within the layout model held in the Layout property of the DockingManager. The fundamental content-containing classes in AvalonDock are LayoutAnchorable and LayoutDocument; both of these classes derive from the LayoutContent class, which determines whether an element can close, float (be dragged and transformed into a floating window), etc.

An anchorable is typically the container of application controls and can be dragged away from its container pane (LayoutAnchorablePane) and repositioned into another pane. Anchorables are always contained in a pane, which can be either a LayoutAnchorablePane or a LayoutDocumentPane, whereas documents (class LayoutDocument) can only be contained in a LayoutDocumentPane. Anchorables can also be dragged to a border of the parent DockingManager, which causes them to appear above, below, to the left of, or to the right of all other anchorables or documents (except for autohide windows; see the LayoutAnchorSide / LayoutAnchorGroup section below for details). Anchorables can also be left in a floating state (LayoutAnchorableFloatingWindow). Unlike documents, anchorables can autohide, where their content collapses to one side of the docking manager and is represented only by a tab (see LayoutAnchorSide and LayoutAnchorGroup).

A document (LayoutDocument class) can be hosted only in a LayoutDocumentPane. This contrasts with the behavior of LayoutAnchorable, which can be hosted both in a LayoutDocumentPane and a LayoutAnchorablePane. Also, unlike anchorables, documents can't be anchored to a DockingManager border and can't be autohidden: they can only be positioned into a LayoutDocumentPane or floated in a LayoutDocumentFloatingWindow.

A LayoutAnchorableFloatingWindow or a LayoutDocumentFloatingWindow is created automatically when the end-user drags an anchorable over the DockingManager. Floating windows can also be created programmatically using the Float method).

LayoutContent-derived elements (LayoutAnchorable and LayoutDocument) are typically arranged as in a tab control. A LayoutAnchorablePane can be set to autohide and can be dragged over the DockingManager as floating window. A LayoutAnchorablePane can also be anchored to a border of the parent DockingManager (see LayoutAnchorSide for more details).

Unlike a LayoutAnchorablePane, a LayoutDocumentPane cannot be set to autohide or dragged over the DockingManager as floating window (although individual LayoutDocument elements can be floated). A LayoutAnchorablePane also can't be anchored to a border of the parent DockingManager.

A LayoutPanel can also contain "pane group" elements (i.e., LayoutAnchorablePaneGroup or LayoutDocumentPaneGroup), which group child panes together and allow various characteristics to be determined, such as the initial width/height the docked group occupies, the initial width/height of floating windows created from content dragged from them, and the orientation of the panes in the group (which is independent of the orientation of the LayoutPanel). LayoutAnchorablePaneGroup represents an element in the layout model that can contain and arrange multiple LayoutAnchorablePane elements, which in turn contain LayoutAnchorable elements. LayoutDocumentPaneGroup represents an element in the layout model that can contain and organize multiple LayoutDocumentPane elements, which in turn contain LayoutDocument elements. The "pane group" classes are primarily used to determine the orientation of the panes they contain.

LayoutRoot represents the root of the layout model. The Layout property of DockingManager is set to an instance of this class.

The RootPanel property of the LayoutRoot class is set to an instance of the LayoutPanel class.

A LayoutPanel can contain child panes directly (that is, LayoutAnchorablePane and LayoutDocumentPane). Panes in turn contain the actual content (that is, LayoutAnchorable or LayoutDocument elements, both of which derive from LayoutContent). A LayoutPanel can also contain "pane group" instances (i.e., LayoutAnchorablePaneGroup or LayoutDocumentPaneGroup), which group child panes together and allow various characteristics to be determined, such as the initial width/height the docked group occupies, the initial width/height of floating windows created from content dragged from them, and the orientation of the panes in the group (which is independent of the orientation of the LayoutPanel).

The LayoutRoot class provides four "Side" properties (e.g., LeftSide), which are used in conjunction with the LayoutAnchorSide and the LayoutAnchorGroup classes to set up autohide LayoutAnchorable elements along the border of the containing DockingManager. These elements are initially collapsed to the side to which they are anchored, displaying only a tab, and the "pin" glyph is pointing to the left. If the pin glyph of an autohide anchorable is clicked so that the pin is pointing down, the anchorable is no longer remains visible. Only LayoutAnchorable elements can be autohidden.

LayoutAnchorGroup represents an autohidden group of one or more LayoutAnchorable elements that can be anchored to one of the four sides of the DockingManager. To use LayoutAnchorGroup, add LayoutAnchorable elements to it, and add the resulting LayoutAnchorGroup to an instance of LayoutAnchorSide. The resulting LayoutAnchorSide is then assigned to a "Side" property (e.g., LeftSide, TopSide) of the LayoutRoot object held in the Layout property of DockingManager.

LayoutAnchorSide represents a "side" in a DockingManager. To use LayoutAnchorSide, add LayoutAnchorable elements to a LayoutAnchorGroup, and add the resulting LayoutAnchorGroup to an instance of LayoutAnchorSide. The resulting LayoutAnchorSide is then assigned to a "Side" property (e.g., LeftSide, TopSide) of the LayoutRoot object held in the Layout property of DockingManager.

Note: You can find complete documentation of the API here. See the 'Live Explorer' application with source code that demonstrates the features of this class and others here.

Support this project, check out the Plus Edition.

Updated Wiki: WindowContainer

$
0
0

WindowContainer

Starting with version 2.0, ChildWindow and MessageBox are derived from the WindowControl class and no longer manage their parent’s background or their position based on their parent’s size.

A WindowContainer should now be used to contain these controls. It provides an area where multiple WindowControl-derived controls (ChildWindow or MessageBox controls) can be displayed. This is particularly interesting in an XBAP application where windows can't be popped up. In this case the WindowContainer can be sized to fit the application and the window-like control can be moved around in the WindowContainer.

The WindowContainer derives from Canvas and positions its children according to its size. Many actions performed on its children are managed by the WindowContainer (movement and positioning, resizing, visibility, modal, and mouse click). This will restrict the WindowControl movements and resizing to the WindowContainer’s size.

When no Width and Height are specified in the WindowContainer, its DesiredSize will be the size of its biggest child.

When a child of the WindowContainer is modal (modal ChildWindow or MessageBox) and visible, the background of the WindowContainer can be colored via the ModalBackgroundBrush property.

It can be useful to set the WindowContainer over an application (with the same width and height) and to use a semi-transparent ModalBackgroundBrush property. When a modal window is shown, the application controls will still be visible through the WindowContainer.

In the WindowContainer, the modal windows will always be in front, preventing the use of other windows from the WindowContainer or controls from the application.

<xctk:WindowContainer>
  <xctk:ChildWindow WindowBackground="Blue"
                    Left="75"
                    Top="50"
                    Width="275"
                    Height="125"
                    WindowState="Open">
    <TextBlock Text="This is a Child Window" Padding="10"/>
  </xctk:ChildWindow>

  <xctk:ChildWindow WindowBackground="Green"
                    Left="175"
                    Top="125"
                    Width="275"
                    Height="125"
                    WindowState="Open">
    <TextBlock Text="This is another Child Window" Padding="10"/>
  </xctk:ChildWindow>

  <xctk:MessageBox Caption="MessageBox"
                   Text="This is a MessageBox"/>
</xctk:WindowContainer>

Note: You can find complete documentation of the API here. See the 'Live Explorer' application with source code that demonstrates the features of this class and others here.

Support this project, check out the Plus Edition.

New Post: CheckListBox: Current Active Item

$
0
0
I have a CheckListbox and a label/Textblock.
<xctk:CheckListBox HorizontalAlignment="Left" Margin="20,38,0,94" Name="clbItems" Width="256" 
                           ItemsSource="{Binding ItemsReference,ElementName=AllocatingCheckListBoxControl}"
                           DisplayMemberPath="{Binding DisplayMemberReference, ElementName=AllocatingCheckListBoxControl}"
                           ValueMemberPath="{Binding ItemsReferenceIdColumnName, ElementName=AllocatingCheckListBoxControl}"/>
        
        <Label HorizontalAlignment="Left" Margin="20,0,0,24" Name="lblDescription" Width="256" Height="64" VerticalAlignment="Bottom">
                <TextBlock Text="{Binding UserGroupRoleDescription}" DataContext="{Binding ElementName=clbItems, Path=SelectedItem}"
                           TextWrapping="Wrap" />
The Label should be filled when the user select a item. Now the text will be only shown, when the user check the item. If he uncheck the item, then the textblock text will be empty

What is the property of the current active Item in the CheckListBox?

New Post: v2.0.0 Community Edition

$
0
0
Great update, thank you!
When will v2.0.0 be available over NuGet?

Updated Wiki: Home

$
0
0
Launched today! Community Edition v2.0.0 released with 67 improvements (see list). The Plus Edition gets 10 additional improvements and new controls.

Extended WPF Toolkit Plus

Extended WPF Toolkit™ is the number one collection of WPF controls, components and utilities for creating next generation Windows applications. Use it to build professional looking, modern, and easy to use line of business applications. The Extended WPF Toolkit project has been downloaded more than 200,000 times here and on Nuget.

The free, open source Community Edition is provided under the Microsoft Public License and includes the following controls:

AvalonDock new in 2.0AutoSelectTextBoxBusyIndicatorButtonSpinner
CalculatorCalculatorUpDownCheckComboBoxCheckListBox
ChildWindownew featuresCollectionEditorDataGridCollectionControlDialog
ColorCanvasColorPickerDateTimePickerDateTimeUpDown
DecimalUpDownDoubleUpDownDropDownButtonIntegerUpDown
MagnifierMaskedTextBoxMessageBoxnew featuresMultiLineTextEditor
PiePrimitiveTypeCollEditorPropertyGridnew featuresRichTextBox
RichTextBoxFormatBarSplitButtonPanels/Layoutsnew in 1.9TimelinePanel
TimePickerWatermarkTextBox WindowContainer new in 2.0 WindowControl new in 2.0
Windows 8 Theme new in 2.0WizardZoombox

Upgrade to Extended WPF Toolkit Plus to get even more controls, features, and professional support.

Latest News

New Live Explorer app available online as a Click Once app. Try it now!.

May 21st 2013 released Community Edition v2.0.0 containing67 new improvements (see list).

 
Extended WPF Toolkit PlusMay 7th 2013 released Plus Edition v2.0.0 containing a variety of new controls and enhancements, including a styleable and feature-rich Chart control.

Jan 28th 2013 released v1.9.0 of the Community Edition, the first update this year. It contains a record-breaking 70 improvements (see the complete list) and a new control.

Action items

  • Enjoy WPF!
  • Please rate this release and write something positive. It's at the bottom of the downloads page
  • Follow this project (click "follow" at the top right of this page)
  • Follow @datagrid on Twitter for WPF and Toolkit news
  • Like Xceed's WPF page on Facebook
  • Check out a video or two on XceedVideos YouTube Channel
  • Add bugs or feature requests to the Issue Tracker

MCC11_Logo_Horizontal_Full-color.jpg

Updated Wiki: Extended WPF Toolkit Plus

$
0
0

PAGE OBSOLETE

Upgrade to Extended WPF Toolkit Plus to get a year's worth of priority support, extra controls, extra features, early access to updates, and more. All for only $349.95.

Not only will you get more features and great support, but you'll support the project. You'll help ensure Xceed can continue to release great updates with new controls, features, and tons of fixes and improvements many times a year. Currently we have two full-time developers that are exclusively working on Extended WPF Toolkit, and as many .NET/WPF technical support engineers as needed to ensure all priority support questions are answered. We can only do this with your support.

Community EditionExtended WPF Toolkit PlusXceed Business Suite for WPF

---

Updated Wiki: WindowContainer

$
0
0

WindowContainer

Starting with version 2.0, ChildWindow and MessageBox are derived from the WindowControl class and no longer manage their parent’s background or their position based on their parent’s size.

A WindowContainer should now be used to contain these controls. It provides an area where multiple WindowControl-derived controls (ChildWindow or MessageBox controls) can be displayed. This is particularly interesting in an XBAP application where windows can't be popped up. In this case the WindowContainer can be sized to fit the application and the window-like control can be moved around in the WindowContainer.

The WindowContainer derives from Canvas and positions its children according to its size. Many actions performed on its children are managed by the WindowContainer (movement and positioning, resizing, visibility, modal, and mouse click). This will restrict the WindowControl movements and resizing to the WindowContainer’s size.

When no Width and Height are specified in the WindowContainer, its DesiredSize will be the size of its biggest child.

When a child of the WindowContainer is modal (modal ChildWindow or MessageBox) and visible, the background of the WindowContainer can be colored via the ModalBackgroundBrush property.

It can be useful to set the WindowContainer over an application (with the same width and height) and to use a semi-transparent ModalBackgroundBrush property. When a modal window is shown, the application controls will still be visible through the WindowContainer.

In the WindowContainer, the modal windows will always be in front, preventing the use of other windows from the WindowContainer or controls from the application.

<xctk:WindowContainer>
  <xctk:ChildWindow WindowBackground="Blue"
                    Left="75"
                    Top="50"
                    Width="275"
                    Height="125"
                    WindowState="Open">
    <TextBlock Text="This is a Child Window" Padding="10"/>
  </xctk:ChildWindow>

  <xctk:ChildWindow WindowBackground="Green"
                    Left="175"
                    Top="125"
                    Width="275"
                    Height="125"
                    WindowState="Open">
    <TextBlock Text="This is another Child Window" Padding="10"/>
  </xctk:ChildWindow>

  <xctk:MessageBox Caption="MessageBox"
                   Text="This is a MessageBox"/>
</xctk:WindowContainer>

Note: You can find complete documentation of the API here. See the 'Live Explorer' application with source code that demonstrates the features of this class and others here.

Support this project, check out the Plus Edition.

Updated Wiki: Home

$
0
0
Launched today! Community Edition v2.0.0 released with 67 improvements (see list). The Plus Edition gets 10 additional improvements and new controls. 25% rebate coupon 'LAUNCH20B' extended through May at shop.

Extended WPF Toolkit Plus

Extended WPF Toolkit™ is the number one collection of WPF controls, components and utilities for creating next generation Windows applications. Use it to build professional looking, modern, and easy to use line of business applications. The Extended WPF Toolkit project has been downloaded more than 200,000 times here and on Nuget.

The free, open source Community Edition is provided under the Microsoft Public License and includes the following controls:

AvalonDocknew in 2.0AutoSelectTextBoxBusyIndicatorButtonSpinner
CalculatorCalculatorUpDownCheckComboBoxCheckListBox
ChildWindownew featuresCollectionEditorDataGridCollectionControlDialog
ColorCanvasColorPickerDateTimePickerDateTimeUpDown
DecimalUpDownDoubleUpDownDropDownButtonIntegerUpDown
MagnifierMaskedTextBoxMessageBoxnew featuresMultiLineTextEditor
PiePrimitiveTypeCollEditorPropertyGridnew featuresRichTextBox
RichTextBoxFormatBarSplitButtonPanels/Layoutsnew in 1.9TimelinePanel
TimePickerWatermarkTextBoxWindowContainernew in 2.0 WindowControl new in 2.0
Windows 8 Theme new in 2.0WizardZoombox

Upgrade to Extended WPF Toolkit Plus to get even more controls, features, and professional support.

Latest News

New Live Explorer app available online as a Click Once app. Try it now!.

May 21st 2013 released Community Edition v2.0.0 containing67 new improvements (see list).

 
Extended WPF Toolkit PlusMay 7th 2013 released Plus Edition v2.0.0 containing a variety of new controls and enhancements, including a styleable and feature-rich Chart control.

Jan 28th 2013 released v1.9.0 of the Community Edition, the first update this year. It contains a record-breaking 70 improvements (see the complete list) and a new control.

Action items

  • Enjoy WPF!
  • Please rate this release and write something positive. It's at the bottom of the downloads page
  • Follow this project (click "follow" at the top right of this page)
  • Follow @datagrid on Twitter for WPF and Toolkit news
  • Like Xceed's WPF page on Facebook
  • Check out a video or two on XceedVideos YouTube Channel
  • Add bugs or feature requests to the Issue Tracker

MCC11_Logo_Horizontal_Full-color.jpg

Updated Wiki: Home

$
0
0
Just Launched! Community Edition v2.0.0 released with 67 improvements (see list). The Plus Edition gets 10 additional improvements and new controls. 25% rebate coupon 'LAUNCH20B' extended through May at shop.

Extended WPF Toolkit Plus

Extended WPF Toolkit™ is the number one collection of WPF controls, components and utilities for creating next generation Windows applications. Use it to build professional looking, modern, and easy to use line of business applications. The Extended WPF Toolkit project has been downloaded more than 200,000 times here and on Nuget.

The free, open source Community Edition is provided under the Microsoft Public License and includes the following controls:

AvalonDocknew in 2.0AutoSelectTextBoxBusyIndicatorButtonSpinner
CalculatorCalculatorUpDownCheckComboBoxCheckListBox
ChildWindownew featuresCollectionEditorDataGridCollectionControlDialog
ColorCanvasColorPickerDateTimePickerDateTimeUpDown
DecimalUpDownDoubleUpDownDropDownButtonIntegerUpDown
MagnifierMaskedTextBoxMessageBoxnew featuresMultiLineTextEditor
PiePrimitiveTypeCollEditorPropertyGridnew featuresRichTextBox
RichTextBoxFormatBarSplitButtonPanels/Layoutsnew in 1.9TimelinePanel
TimePickerWatermarkTextBoxWindowContainernew in 2.0 WindowControl new in 2.0
Windows 8 Theme new in 2.0WizardZoombox

Upgrade to Extended WPF Toolkit Plus to get even more controls, features, and professional support.

Latest News

New Live Explorer app available online as a Click Once app. Try it now!.

May 21st 2013 released Community Edition v2.0.0 containing 67 new improvements (see list).

 
Extended WPF Toolkit PlusMay 7th 2013 released Plus Edition v2.0.0 containing a variety of new controls and enhancements, including a styleable and feature-rich Chart control.

Jan 28th 2013 released v1.9.0 of the Community Edition, the first update this year. It contains a record-breaking 70 improvements (see the complete list) and a new control.

Action items

  • Enjoy WPF!
  • Please rate this release and write something positive. It's at the bottom of the downloads page
  • Follow this project (click "follow" at the top right of this page)
  • Follow @datagrid on Twitter for WPF and Toolkit news
  • Like Xceed's WPF page on Facebook
  • Check out a video or two on XceedVideos YouTube Channel
  • Add bugs or feature requests to the Issue Tracker

MCC11_Logo_Horizontal_Full-color.jpg

Updated Wiki: Home

$
0
0
Just Launched! Community Edition v2.0.0 released with 67 improvements (see list). The Plus Edition gets 10 additional improvements and new controls. 25% rebate coupon'LAUNCH20B' extended through May at shop.

Extended WPF Toolkit Plus

Extended WPF Toolkit™ is the number one collection of WPF controls, components and utilities for creating next generation Windows applications. Use it to build professional looking, modern, and easy to use line of business applications. The Extended WPF Toolkit project has been downloaded more than 200,000 times here and on Nuget.

The free, open source Community Edition is provided under the Microsoft Public License and includes the following controls:

AvalonDocknew in 2.0AutoSelectTextBoxBusyIndicatorButtonSpinner
CalculatorCalculatorUpDownCheckComboBoxCheckListBox
ChildWindownew featuresCollectionEditorDataGridCollectionControlDialog
ColorCanvasColorPickerDateTimePickerDateTimeUpDown
DecimalUpDownDoubleUpDownDropDownButtonIntegerUpDown
MagnifierMaskedTextBoxMessageBoxnew featuresMultiLineTextEditor
PiePrimitiveTypeCollEditorPropertyGridnew featuresRichTextBox
RichTextBoxFormatBarSplitButtonPanels/Layoutsnew in 1.9TimelinePanel
TimePickerWatermarkTextBoxWindowContainernew in 2.0 WindowControl new in 2.0
Windows 8 Theme new in 2.0WizardZoombox

Upgrade to Extended WPF Toolkit Plus to get even more controls, features, and professional support.

Latest News

New Live Explorer app available online as a Click Once app. Try it now!.

May 21st 2013 released Community Edition v2.0.0 containing 67 new improvements (see list).

 
Extended WPF Toolkit PlusMay 7th 2013 released Plus Edition v2.0.0 containing a variety of new controls and enhancements, including a styleable and feature-rich Chart control.

Jan 28th 2013 released v1.9.0 of the Community Edition, the first update this year. It contains a record-breaking 70 improvements (see the complete list) and a new control.

Action items

  • Enjoy WPF!
  • Please rate this release and write something positive. It's at the bottom of the downloads page
  • Follow this project (click "follow" at the top right of this page)
  • Follow @datagrid on Twitter for WPF and Toolkit news
  • Like Xceed's WPF page on Facebook
  • Check out a video or two on XceedVideos YouTube Channel
  • Add bugs or feature requests to the Issue Tracker

MCC11_Logo_Horizontal_Full-color.jpg

Updated Wiki: Home

$
0
0
Just Launched! Community Edition v2.0.0 released with 67 improvements (see list). The Plus Edition gets 10 additional improvements and new controls. 25% rebate coupon'LAUNCH20B' extended through May at shop.

Extended WPF Toolkit Plus

Extended WPF Toolkit™ is the number one collection of WPF controls, components and utilities for creating next generation Windows applications. Use it to build professional looking, modern, and easy to use line of business applications. The Extended WPF Toolkit project has been downloaded more than 200,000 times here and on Nuget.

The free, open source Community Edition is provided under the Microsoft Public License and includes the following controls:

AvalonDocknew in 2.0AutoSelectTextBoxBusyIndicatorButtonSpinner
CalculatorCalculatorUpDownCheckComboBoxCheckListBox
ChildWindownew featuresCollectionEditorDataGridCollectionControlDialog
ColorCanvasColorPickerDateTimePickerDateTimeUpDown
DecimalUpDownDoubleUpDownDropDownButtonIntegerUpDown
MagnifierMaskedTextBoxMessageBoxnew featuresMultiLineTextEditor
PiePrimitiveTypeCollEditorPropertyGridnew featuresRichTextBox
RichTextBoxFormatBarSplitButtonPanels/Layoutsnew in 1.9TimelinePanel
TimePickerWatermarkTextBoxWindowContainernew in 2.0 WindowControl new in 2.0
Windows 8 Theme new in 2.0WizardZoombox

Upgrade to Extended WPF Toolkit Plus to get even more controls, features, and professional support.

Latest News

New Live Explorer app available online as a Click Once app. Try it now!.

May 21st 2013 released Community Edition v2.0.0 containing 67 new improvements (see list).

 
Extended WPF Toolkit PlusMay 7th 2013 released Plus Edition v2.0.0 containing a variety of new controls and enhancements, including a styleable and feature-rich Chart control.

Jan 28th 2013 released v1.9.0 of the Community Edition, the first update this year. It contains a record-breaking 70 improvements (see the complete list) and a new control.

Action items

  • Enjoy WPF!
  • Please rate this release and write something positive. It's at the bottom of the downloads page
  • Follow this project (click "follow" at the top right of this page)
  • Follow @datagrid on Twitter for WPF and Toolkit news
  • Like Xceed's WPF page on Facebook
  • Check out a video or two on XceedVideos YouTube Channel
  • Add bugs or feature requests to the Issue Tracker

MCC11_Logo_Horizontal_Full-color.jpg

New Post: DoubleUpDown.IsEditable gone?

$
0
0
DoubleUpDown "IsEditable" has been renamed to "IsReadOnly" since version 1.6

The Generic theme for the controls have been reviewed to be inline with the standard Aero theme.
Starting with version 2.0, we also support the new Aero2 theme (under Windows 8)

Sorry, there is no easy "turning back" to previous theme beside re-templating your controls
Viewing all 4964 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>