diff --git a/Readme.md b/Readme.md
index 0cb4fe9..728f41a 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,5 +1,4 @@
-
[](https://supportcenter.devexpress.com/ticket/details/E4845)
[](https://docs.devexpress.com/GeneralInformation/403183)
diff --git a/VB/DXDockingForLayoutPurposes.Net5.sln b/VB/DXDockingForLayoutPurposes.Net5.sln
new file mode 100644
index 0000000..24e1306
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes.Net5.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 16
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DXDockingForLayoutPurposes", "DXDockingForLayoutPurposes\DXDockingForLayoutPurposes.Net5.vbproj", "{8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Debug|x86.ActiveCfg = Debug|x86
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Debug|x86.Build.0 = Debug|x86
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Release|x86.ActiveCfg = Release|x86
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/VB/DXDockingForLayoutPurposes.sln b/VB/DXDockingForLayoutPurposes.sln
new file mode 100644
index 0000000..106702d
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2012
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DXDockingForLayoutPurposes", "DXDockingForLayoutPurposes\DXDockingForLayoutPurposes.vbproj", "{8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Debug|x86.ActiveCfg = Debug|x86
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Debug|x86.Build.0 = Debug|x86
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Release|x86.ActiveCfg = Release|x86
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/VB/DXDockingForLayoutPurposes/Application.xaml b/VB/DXDockingForLayoutPurposes/Application.xaml
new file mode 100644
index 0000000..9bae59e
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/Application.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/VB/DXDockingForLayoutPurposes/Application.xaml.vb b/VB/DXDockingForLayoutPurposes/Application.xaml.vb
new file mode 100644
index 0000000..9df83ed
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/Application.xaml.vb
@@ -0,0 +1,16 @@
+Imports System
+Imports System.Collections.Generic
+Imports System.Configuration
+Imports System.Data
+Imports System.Linq
+Imports System.Windows
+
+Namespace DXDockingForLayoutPurposes
+ '''
+ ''' Interaction logic for App.xaml
+ '''
+ Partial Public Class App
+ Inherits Application
+
+ End Class
+End Namespace
diff --git a/VB/DXDockingForLayoutPurposes/DXDockingForLayoutPurposes.Net5.vbproj b/VB/DXDockingForLayoutPurposes/DXDockingForLayoutPurposes.Net5.vbproj
new file mode 100644
index 0000000..c73242e
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/DXDockingForLayoutPurposes.Net5.vbproj
@@ -0,0 +1,42 @@
+
+
+
+ net5.0-windows
+ x86
+ WinExe
+
+
+ DXDockingForLayoutPurposes
+ false
+ true
+ true
+ x86;AnyCPU
+ false
+ obj*/**
+ On
+ Binary
+ Off
+ On
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VB/DXDockingForLayoutPurposes/DXDockingForLayoutPurposes.vbproj b/VB/DXDockingForLayoutPurposes/DXDockingForLayoutPurposes.vbproj
new file mode 100644
index 0000000..893b7bd
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/DXDockingForLayoutPurposes.vbproj
@@ -0,0 +1,205 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {8AEEBF3A-F021-4DB1-BDA4-B1F93B305ABF}
+ WinExe
+
+
+ DXDockingForLayoutPurposes
+ v4.5.2
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}
+ obj.NetFX
+ On
+ Binary
+ Off
+ On
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ true
+ true
+ prompt
+ true
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ false
+ true
+ prompt
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Data.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Pdf.v21.1.Core.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Office.v21.1.Core.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.RichEdit.v21.1.Core.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.RichEdit.v21.1.Export.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Printing.v21.1.Core.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.CodeView.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Data.Desktop.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.Core.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.Docking.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.Printing.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.Grid.v21.1.Core.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.Grid.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.Layout.v21.1.Core.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.LayoutControl.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Mvvm.v21.1.dll
+
+
+ True
+ C:\DXDlls\21.1.5\DevExpress.Xpf.Ribbon.v21.1.dll
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ Application.xaml
+ Code
+
+
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.vb
+ My
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VB/DXDockingForLayoutPurposes/DockLayoutManagerExt.vb b/VB/DXDockingForLayoutPurposes/DockLayoutManagerExt.vb
new file mode 100644
index 0000000..a8f18b1
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/DockLayoutManagerExt.vb
@@ -0,0 +1,94 @@
+Imports System
+Imports System.Collections.Generic
+Imports System.Linq
+Imports System.Windows
+Imports DevExpress.Xpf.Layout.Core
+Imports DevExpress.Xpf.Docking
+Imports DevExpress.Xpf.Docking.Platform
+
+Namespace DXDockingForLayoutPurposes
+ 'S171364
+ Friend Class DockLayoutManagerExt
+ Inherits DockLayoutManager
+
+ Private layoutView As IView
+ Private customizationView As IView
+
+ Protected Overrides Function CreateLayoutView(ByVal element As IUIElement) As IView
+ layoutView = New CustomLayoutView(element)
+ Return layoutView
+ End Function
+ Protected Overrides Function CreateCustomizationView(ByVal element As IUIElement) As IView
+ customizationView = New MyCustomizationView(element)
+ Return customizationView
+ End Function
+ End Class
+
+ Public Class MyCustomizationView
+ Inherits CustomizationView
+
+ Public Sub New(ByVal viewUIElement As IUIElement)
+ MyBase.New(viewUIElement)
+ End Sub
+
+ Protected Overrides Sub RegisterListeners()
+ MyBase.RegisterUIServiceListener(New LayoutViewSelectionListener())
+ MyBase.RegisterUIServiceListener(New CustomizationViewUIInteractionListener())
+ MyBase.RegisterUIServiceListener(New MyCustomizationDraggingListener()) 'my version
+ End Sub
+ End Class
+
+ Public Class CustomLayoutView
+ Inherits LayoutView
+
+ Public Sub New(ByVal viewUIElement As IUIElement)
+ MyBase.New(viewUIElement)
+ End Sub
+
+ Protected Overrides Sub RegisterListeners()
+ RegisterUIServiceListener(New LayoutViewRegularDragListener())
+ RegisterUIServiceListener(New LayoutViewFloatingDragListener())
+ RegisterUIServiceListener(New LayoutViewReorderingListener())
+ RegisterUIServiceListener(New MyDragListener()) ' my version
+ RegisterUIServiceListener(New LayoutViewNonClientDraggingListener())
+ RegisterUIServiceListener(New LayoutViewUIInteractionListener())
+ RegisterUIServiceListener(New LayoutViewSelectionListener())
+ RegisterUIServiceListener(New LayoutViewActionListener())
+ End Sub
+ End Class
+
+ Public Class MyDragListener
+ Inherits LayoutViewClientDraggingListener
+
+ Public Overrides Function CanDrop(ByVal point As Point, ByVal element As ILayoutElement) As Boolean
+
+ Dim dockLayoutElementDragInfo As New DockLayoutElementDragInfo(Me.View, point, element)
+ Dim draggedItem As BaseLayoutItem = dockLayoutElementDragInfo.Item
+ Dim target As BaseLayoutItem = dockLayoutElementDragInfo.Target
+ If Not DragHelper.IsItemInGroup(draggedItem) AndAlso Not DragHelper.IsTargetInGroup(target) Then
+ Return MyBase.CanDrop(point, element)
+ End If
+ Dim result As Boolean = DragHelper.AllowMoving(draggedItem, target)
+ Return result
+
+ End Function
+ End Class
+
+ Public Class MyCustomizationDraggingListener
+ Inherits CustomizationViewClientDraggingListener
+
+ Public Overrides Function CanDrop(ByVal point As Point, ByVal element As ILayoutElement) As Boolean
+ Dim dockLayoutElementDragInfo As New DockLayoutElementDragInfo(MyBase.View, point, element)
+ Dim draggedItem = dockLayoutElementDragInfo.Item
+ Dim target = dockLayoutElementDragInfo.Target
+ If (TypeOf dockLayoutElementDragInfo.DropTarget Is HiddenItemElement OrElse TypeOf dockLayoutElementDragInfo.DropTarget Is HiddenItemsListElement) AndAlso dockLayoutElementDragInfo.Item.AllowHide Then
+ Dim itemType As LayoutItemType = dockLayoutElementDragInfo.Item.ItemType
+ Return (LayoutItemsHelper.IsLayoutItem(dockLayoutElementDragInfo.Item) OrElse itemType = LayoutItemType.Group)
+ End If
+ If Not DragHelper.IsItemInGroup(draggedItem) AndAlso Not DragHelper.IsTargetInGroup(target) Then
+ Return MyBase.CanDrop(point, element)
+ End If
+ Return DragHelper.AllowMoving(draggedItem, target)
+ End Function
+ End Class
+End Namespace
diff --git a/VB/DXDockingForLayoutPurposes/Helpers.vb b/VB/DXDockingForLayoutPurposes/Helpers.vb
new file mode 100644
index 0000000..64aa0c2
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/Helpers.vb
@@ -0,0 +1,110 @@
+Imports System
+Imports System.Collections.Generic
+Imports System.Linq
+Imports System.Windows
+Imports DevExpress.Xpf.Docking
+
+Namespace DXDockingForLayoutPurposes
+ Public Class Helper
+ Inherits DependencyObject
+
+ Public Shared ReadOnly DisableCrossingGroupBoundariesProperty As DependencyProperty = DependencyProperty.RegisterAttached("DisableCrossingGroupBoundaries", GetType(Boolean), GetType(Helper), New PropertyMetadata(False, New PropertyChangedCallback(AddressOf PropertyChanged)))
+
+ Public Shared Function GetDisableCrossingGroupBoundaries(ByVal d As DependencyObject) As Boolean
+ Return CBool(d.GetValue(DisableCrossingGroupBoundariesProperty))
+ End Function
+ Public Shared Sub SetDisableCrossingGroupBoundaries(ByVal d As DependencyObject, ByVal value As Boolean)
+ d.SetValue(DisableCrossingGroupBoundariesProperty, value)
+ End Sub
+
+ Public Shared Sub PropertyChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
+ If Not (TypeOf d Is LayoutGroup) Then
+ Throw New ArgumentException("Use this attached property only with LayoutGroup")
+ End If
+ End Sub
+
+ End Class
+ Public Module DragHelper
+ Public Function AllowMoving(ByVal item As BaseLayoutItem, ByVal target As BaseLayoutItem) As Boolean
+ Dim result As Boolean = False
+ If target Is Nothing Then
+ Return False
+ End If
+ If DragHelper.IsItemInGroup(item) AndAlso DragHelper.IsTargetInGroup(target) AndAlso (TypeOf target Is LayoutControlItem) Then
+ Return True
+ End If
+ Dim draggedItem As BaseLayoutItem = Nothing, targetItem As BaseLayoutItem = Nothing
+ If TypeOf item Is LayoutControlItem Then
+ draggedItem = TryCast(item, LayoutControlItem)
+ If TypeOf target Is LayoutControlItem Then
+ targetItem = TryCast(target, LayoutControlItem)
+ If targetItem.Parent = draggedItem.Parent Then
+ result = True
+ End If
+ End If
+ If TypeOf target Is LayoutGroup Then
+ targetItem = TryCast(target, LayoutGroup)
+ If targetItem.Parent = draggedItem.Parent Then
+ result = True
+ End If
+ End If
+ End If
+ If TypeOf item Is LayoutGroup Then
+ draggedItem = TryCast(item, LayoutGroup)
+ If TypeOf target Is LayoutControlItem Then
+ targetItem = TryCast(target, LayoutControlItem)
+ If targetItem.Parent = draggedItem.Parent Then
+ result = True
+ End If
+ End If
+ If TypeOf target Is LayoutGroup Then
+ targetItem = TryCast(target, LayoutGroup)
+ If targetItem.Parent = draggedItem.Parent Then
+ result = True
+ End If
+ End If
+ End If
+ Return result
+ End Function
+
+
+ Public Function IsItemInGroup(ByVal item As BaseLayoutItem) As Boolean
+ Dim result As Boolean = False
+ Dim currentItem As BaseLayoutItem = item
+ Do While currentItem.Parent IsNot Nothing
+ If TypeOf currentItem.Parent Is LayoutGroup Then
+ Dim lgroup As LayoutGroup = TryCast(currentItem.Parent, LayoutGroup)
+ Dim allowCustomization As Boolean = Helper.GetDisableCrossingGroupBoundaries(lgroup)
+ If allowCustomization Then
+ result = True
+ Exit Do
+ End If
+ End If
+ currentItem = currentItem.Parent
+ Loop
+ Return result
+ End Function
+ Public Function IsTargetInGroup(ByVal target As BaseLayoutItem) As Boolean
+ Dim result As Boolean = False
+ Dim currentTarget As BaseLayoutItem = target
+ Do While currentTarget IsNot Nothing
+ If TypeOf currentTarget Is LayoutGroup Then
+ Dim lgroup As LayoutGroup = TryCast(currentTarget, LayoutGroup)
+ Dim allowCustomization As Boolean = Helper.GetDisableCrossingGroupBoundaries(lgroup)
+ If allowCustomization Then
+ result = True
+ Exit Do
+ End If
+ End If
+ currentTarget = currentTarget.Parent
+ Loop
+ Return result
+ End Function
+
+ End Module
+
+
+
+
+End Namespace
+
diff --git a/VB/DXDockingForLayoutPurposes/MainWindow.xaml b/VB/DXDockingForLayoutPurposes/MainWindow.xaml
new file mode 100644
index 0000000..103c176
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/MainWindow.xaml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/VB/DXDockingForLayoutPurposes/MainWindow.xaml.vb b/VB/DXDockingForLayoutPurposes/MainWindow.xaml.vb
new file mode 100644
index 0000000..455d322
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/MainWindow.xaml.vb
@@ -0,0 +1,147 @@
+Imports System
+Imports System.Collections.Generic
+Imports System.Linq
+Imports System.Text
+Imports System.Windows
+Imports System.Windows.Controls
+Imports System.Windows.Data
+Imports System.Windows.Documents
+Imports System.Windows.Input
+Imports System.Windows.Media
+Imports System.Windows.Media.Imaging
+Imports System.Windows.Markup
+Imports DevExpress.Xpf.Core
+Imports DevExpress.Xpf.Ribbon
+Imports DevExpress.Xpf.Layout.Core
+Imports DevExpress.Xpf.Docking
+Imports DevExpress.Xpf.Docking.Base
+Imports DevExpress.Xpf.Docking.VisualElements
+Imports DevExpress.Xpf.Grid
+Imports DevExpress.Xpf.Core.Native
+Imports System.ComponentModel
+Imports System.Collections.ObjectModel
+
+Namespace DXDockingForLayoutPurposes
+ '''
+ ''' Interaction logic for MainWindow.xaml
+ '''
+ Partial Public Class MainWindow
+ Inherits DXRibbonWindow
+
+ Public Sub New()
+ InitializeComponent()
+ DataContext = New DataSource()
+ End Sub
+ End Class
+ Public Class TestData
+ Public Property Text() As String
+ Public Property Number() As Integer
+ End Class
+
+ Public Class TestDataViewModel
+ Implements INotifyPropertyChanged
+
+'INSTANT VB NOTE: The field data was renamed since Visual Basic does not allow fields to have the same name as other class members:
+ Private data_Conflict As TestData
+ Public Sub New()
+ data_Conflict = New TestData() With {
+ .Text = String.Empty,
+ .Number = 0
+ }
+ End Sub
+ Public Property Text() As String
+ Get
+ Return Data.Text
+ End Get
+ Set(ByVal value As String)
+ If Data.Text = value Then
+ Return
+ End If
+ Data.Text = value
+ RaisePropertyChanged("Text")
+ End Set
+ End Property
+ Public Property Number() As Integer
+ Get
+ Return Data.Number
+ End Get
+ Set(ByVal value As Integer)
+ If Data.Number = value Then
+ Return
+ End If
+ Data.Number = value
+ RaisePropertyChanged("Number")
+ End Set
+ End Property
+ Protected ReadOnly Property Data() As TestData
+ Get
+ Return data_Conflict
+ End Get
+ End Property
+ #Region "INotifyPropertyChanged"
+ Public Event PropertyChanged As PropertyChangedEventHandler
+ Protected Overridable Sub OnPropertyChanged(ByVal e As PropertyChangedEventArgs)
+ RaiseEvent PropertyChanged(Me, e)
+ End Sub
+ Protected Sub RaisePropertyChanged(ByVal propertyName As String)
+ OnPropertyChanged(New PropertyChangedEventArgs(propertyName))
+ End Sub
+ #End Region
+ End Class
+
+ Public Class DataSource
+ Private source As ObservableCollection(Of TestDataViewModel)
+ Public Sub New()
+ source = CreateDataSource()
+ End Sub
+ Protected Function CreateDataSource() As ObservableCollection(Of TestDataViewModel)
+ Dim res As New ObservableCollection(Of TestDataViewModel)()
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row0",
+ .Number = 0
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row1",
+ .Number = 1
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row2",
+ .Number = 2
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row3",
+ .Number = 3
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row4",
+ .Number = 4
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row5",
+ .Number = 5
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row6",
+ .Number = 6
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row7",
+ .Number = 7
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row8",
+ .Number = 8
+ })
+ res.Add(New TestDataViewModel() With {
+ .Text = "Row9",
+ .Number = 9
+ })
+ Return res
+ End Function
+ Public ReadOnly Property Data() As ObservableCollection(Of TestDataViewModel)
+ Get
+ Return source
+ End Get
+ End Property
+ End Class
+End Namespace
diff --git a/VB/DXDockingForLayoutPurposes/My Project/AssemblyInfo.vb b/VB/DXDockingForLayoutPurposes/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..c18a151
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/My Project/AssemblyInfo.vb
@@ -0,0 +1,48 @@
+Imports System.Reflection
+Imports System.Resources
+Imports System.Runtime.CompilerServices
+Imports System.Runtime.InteropServices
+Imports System.Windows
+
+' General Information about an assembly is controlled through the following
+' set of attributes. Change these attribute values to modify the information
+' associated with an assembly.
+
+
+
+
+
+
+
+
+
+' Setting ComVisible to false makes the types in this assembly not visible
+' to COM components. If you need to access a type in this assembly from
+' COM, set the ComVisible attribute to true on that type.
+
+
+'In order to begin building localizable applications, set
+'CultureYouAreCodingWith in your .csproj file
+'inside a . For example, if you are using US english
+'in your source files, set the to en-US. Then uncomment
+'the NeutralResourceLanguage attribute below. Update the "en-US" in
+'the line below to match the UICulture setting in the project file.
+
+'[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+
+
+
+' Version information for an assembly consists of the following four values:
+'
+' Major Version
+' Minor Version
+' Build Number
+' Revision
+'
+' You can specify all the values or you can default the Build and Revision Numbers
+' by using the '*' as shown below:
+' [assembly: AssemblyVersion("1.0.*")]
+
+
diff --git a/VB/DXDockingForLayoutPurposes/My Project/Resources.Designer.vb b/VB/DXDockingForLayoutPurposes/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..2d6fece
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.18051
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Namespace My.Resources
+
+
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ ' This class was auto-generated by the StronglyTypedResourceBuilder
+ ' class via a tool like ResGen or Visual Studio.
+ ' To add or remove a member, edit your .ResX file then rerun ResGen
+ ' with the /str option, or rebuild your VS project.
+
+
+
+ Friend Module Resources
+
+ Private resourceMan As System.Resources.ResourceManager
+
+ Private resourceCulture As System.Globalization.CultureInfo
+
+' internal Resources()
+' {
+' }
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+
+ Friend ReadOnly Property ResourceManager() As System.Resources.ResourceManager
+ Get
+ If (resourceMan Is Nothing) Then
+ Dim temp As New System.Resources.ResourceManager("Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+
+ Friend Property Culture() As System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/VB/DXDockingForLayoutPurposes/My Project/Resources.resx b/VB/DXDockingForLayoutPurposes/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/VB/DXDockingForLayoutPurposes/My Project/Settings.Designer.vb b/VB/DXDockingForLayoutPurposes/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..f3bb480
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/My Project/Settings.Designer.vb
@@ -0,0 +1,27 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.18051
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Namespace My
+
+
+
+
+ Friend NotInheritable Partial Class Settings
+ Inherits System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As Settings = (CType(System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()), Settings))
+
+ Public Shared ReadOnly Property [Default]() As Settings
+ Get
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
diff --git a/VB/DXDockingForLayoutPurposes/My Project/Settings.settings b/VB/DXDockingForLayoutPurposes/My Project/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VB/DXDockingForLayoutPurposes/app.config b/VB/DXDockingForLayoutPurposes/app.config
new file mode 100644
index 0000000..2377c09
--- /dev/null
+++ b/VB/DXDockingForLayoutPurposes/app.config
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+ Office2016White
+
+
+
+
\ No newline at end of file