diff --git a/Readme.md b/Readme.md index 0cb4fe9..728f41a 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,4 @@ -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/128643681/13.1.5%2B) [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/E4845) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](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