mirror of
https://github.com/Stone-Red-Code/docs-desktop.git
synced 2026-09-07 16:06:07 +02:00
WPF publish initial content (#1032)
* Add overview article for new WPF (#178) * Remove previous WPF .NET 5 content * Overview article * New article: Create new WPF project (#183) * Basic index file * Finish article for new project. * acro * markdown fix * Fix build errors * fix code lang * fix code lang * Add differences article for WPF (#186) * Fix VS version for create app * Add differences article * Minor * fix overview styles code * Add code langs for overview * Port Window Overview WPF article (#1011) * Add Window overview article * Add TOC * Remove temp code * Fix headers * Port final Windows related articles (#1015) * Initial test commit * Add system dialogs * 75% complete * Add images * Fix linter * Add to toc * Add more howto * Fix code * Add get/set main window * Add missing code * Add to toc * Fix warnings * Fix warnings * missing code * Update see also * fix xref * Migrate wpf net core controls-styles articles (#1023) * Migrate control-styles * Fix links * Fix links * Port databinding article. (#1022) * Migrated databinding overview * update toc * Fix links/snippets * fix links * Move to correct folder * Port initial resources docs (#1026) * initial resources docs * Build errors * Update dotnet-desktop-guide/net/wpf/systems/xaml-resources-overview.md Co-authored-by: Genevieve Warren <[email protected]> * Apply suggestions from code review Co-authored-by: Genevieve Warren <[email protected]> * Feedback * Add app article * Add system article * Minor * meta * fix toc * Apply suggestions from code review Co-authored-by: Genevieve Warren <[email protected]> Co-authored-by: Genevieve Warren <[email protected]> * Add xaml article * reformat redirect * Redirects * WPF update XAML article (#1031) * convert snippets * minor edits * minor * Fix warnings * Fixes #1028 * Fixes #1028 * Apply suggestions from code review Co-authored-by: Genevieve Warren <[email protected]> * update redirects Co-authored-by: Genevieve Warren <[email protected]> * minor updates to link * Readd migration article * Warning fixes * Fix lint * Minor updates * Fix warnings for TOC/YML * last warnings Co-authored-by: Genevieve Warren <[email protected]>
This commit is contained in:
co-authored by
Genevieve Warren
parent
a3b012ae99
commit
ea8529f082
+9
@@ -0,0 +1,9 @@
|
||||
<Application x:Class="Application"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:Dialogs"
|
||||
StartupUri="Window1.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
Class Application
|
||||
|
||||
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
|
||||
' can be handled in this file.
|
||||
|
||||
End Class
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
Imports System.Windows
|
||||
|
||||
'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found.
|
||||
'1st parameter: where theme specific resource dictionaries are located
|
||||
'(used if a resource is not found in the page,
|
||||
' or application resource dictionaries)
|
||||
|
||||
'2nd parameter: where the generic resource dictionary is located
|
||||
'(used if a resource is not found in the page,
|
||||
'app, and any theme specific resource dictionaries)
|
||||
<Assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)>
|
||||
@@ -0,0 +1,22 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net5.0-windows</TargetFramework>
|
||||
<RootNamespace>Dialogs</RootNamespace>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Import Include="System.Windows" />
|
||||
<Import Include="System.Windows.Controls" />
|
||||
<Import Include="System.Windows.Data" />
|
||||
<Import Include="System.Windows.Documents" />
|
||||
<Import Include="System.Windows.Input" />
|
||||
<Import Include="System.Windows.Media" />
|
||||
<Import Include="System.Windows.Media.Imaging" />
|
||||
<Import Include="System.Windows.Navigation" />
|
||||
<Import Include="System.Windows.Shapes" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
Imports System.Globalization
|
||||
|
||||
Public Class MarginValidationRule
|
||||
Inherits ValidationRule
|
||||
|
||||
Public Property MinMargin As Double
|
||||
Public Property MaxMargin As Double
|
||||
|
||||
Public Overrides Function Validate(value As Object, cultureInfo As CultureInfo) As ValidationResult
|
||||
Dim margin As Double
|
||||
|
||||
' Is it a number?
|
||||
If Not Double.TryParse(DirectCast(value, String), margin) Then
|
||||
Return New ValidationResult(False, "Not a number")
|
||||
End If
|
||||
|
||||
' Is it in range
|
||||
If margin < MinMargin Or margin > MaxMargin Then
|
||||
Return New ValidationResult(False, $"Margin must be between {MinMargin} and {MaxMargin}")
|
||||
End If
|
||||
|
||||
Return New ValidationResult(True, Nothing)
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,115 @@
|
||||
<Window x:Class="Margins"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:Dialogs"
|
||||
Title="Margins"
|
||||
Closing="Window_Closing"
|
||||
MinHeight="200"
|
||||
MinWidth="300"
|
||||
SizeToContent="WidthAndHeight"
|
||||
ResizeMode="CanResizeWithGrip"
|
||||
ShowInTaskbar="False"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
WindowStyle="ToolWindow"
|
||||
FocusManager.FocusedElement="{Binding ElementName=leftMarginTextBox}">
|
||||
<Grid>
|
||||
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Grid}">
|
||||
<Setter Property="Margin" Value="10" />
|
||||
</Style>
|
||||
<Style TargetType="{x:Type Label}">
|
||||
<Setter Property="Margin" Value="0,3,5,5" />
|
||||
<Setter Property="Padding" Value="0,0,0,5" />
|
||||
</Style>
|
||||
<Style TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Margin" Value="0,0,0,5" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="Validation.HasError" Value="true">
|
||||
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style TargetType="{x:Type StackPanel}">
|
||||
<Setter Property="Orientation" Value="Horizontal" />
|
||||
<Setter Property="HorizontalAlignment" Value="Right" />
|
||||
</Style>
|
||||
<Style TargetType="{x:Type Button}">
|
||||
<Setter Property="Width" Value="70" />
|
||||
<Setter Property="Height" Value="25" />
|
||||
<Setter Property="Margin" Value="5,0,0,0" />
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Left Margin -->
|
||||
<Label Grid.Column="0" Grid.Row="0">Left Margin:</Label>
|
||||
<TextBox Name="leftMarginTextBox" Grid.Column="1" Grid.Row="0">
|
||||
<TextBox.Text>
|
||||
<Binding Path="Left" UpdateSourceTrigger="PropertyChanged">
|
||||
<Binding.ValidationRules>
|
||||
<local:MarginValidationRule MinMargin="0" MaxMargin="10" />
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>
|
||||
|
||||
<!-- Top Margin -->
|
||||
<Label Grid.Column="0" Grid.Row="1">Top Margin:</Label>
|
||||
<TextBox Name="topMarginTextBox" Grid.Column="1" Grid.Row="1">
|
||||
<TextBox.Text>
|
||||
<Binding Path="Top" UpdateSourceTrigger="PropertyChanged">
|
||||
<Binding.ValidationRules>
|
||||
<local:MarginValidationRule MinMargin="0" MaxMargin="10" />
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>
|
||||
|
||||
<!-- Right Margin -->
|
||||
<Label Grid.Column="0" Grid.Row="2">Right Margin:</Label>
|
||||
<TextBox Name="rightMarginTextBox" Grid.Column="1" Grid.Row="2">
|
||||
<TextBox.Text>
|
||||
<Binding Path="Right" UpdateSourceTrigger="PropertyChanged">
|
||||
<Binding.ValidationRules>
|
||||
<local:MarginValidationRule MinMargin="0" MaxMargin="10" />
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>
|
||||
|
||||
<!-- Bottom Margin -->
|
||||
<Label Grid.Column="0" Grid.Row="3">Bottom Margin:</Label>
|
||||
<TextBox Name="bottomMarginTextBox" Grid.Column="1" Grid.Row="3">
|
||||
<TextBox.Text>
|
||||
<Binding Path="Bottom" UpdateSourceTrigger="PropertyChanged">
|
||||
<Binding.ValidationRules>
|
||||
<local:MarginValidationRule MinMargin="0" MaxMargin="10" />
|
||||
</Binding.ValidationRules>
|
||||
</Binding>
|
||||
</TextBox.Text>
|
||||
</TextBox>
|
||||
|
||||
<!-- Accept or Cancel -->
|
||||
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="4">
|
||||
<Button Name="okButton" IsDefault="True" Click="okButton_Click">OK</Button>
|
||||
<Button Name="cancelButton" IsCancel="True">Cancel</Button>
|
||||
</StackPanel>
|
||||
|
||||
</Grid >
|
||||
</Window>
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
Public Class Margins
|
||||
Private Sub okButton_Click(sender As Object, e As RoutedEventArgs)
|
||||
|
||||
End Sub
|
||||
|
||||
'<CancelAndHide>
|
||||
Private Sub Window_Closing(sender As Object, e As ComponentModel.CancelEventArgs)
|
||||
'First, cancel the window closure
|
||||
e.Cancel = True
|
||||
|
||||
'Next, hide the window
|
||||
Hide()
|
||||
End Sub
|
||||
'</CancelAndHide>
|
||||
End Class
|
||||
@@ -0,0 +1,16 @@
|
||||
<Window x:Class="Window1"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:Dialogs"
|
||||
mc:Ignorable="d"
|
||||
Title="Names" Height="180" Width="260">
|
||||
<StackPanel>
|
||||
<Button>Message Box</Button>
|
||||
<Button>Save file</Button>
|
||||
<Button>Open file</Button>
|
||||
<Button>Print</Button>
|
||||
<Button Click="formatMarginsButton_Click" Content="_Margins..."/>
|
||||
</StackPanel>
|
||||
</Window>
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
Public Class Window1
|
||||
'<DialogResultButtons>
|
||||
Private Sub okButton_Click(sender As Object, e As RoutedEventArgs)
|
||||
DialogResult = True
|
||||
End Sub
|
||||
|
||||
Private Sub cancelButton_Click(sender As Object, e As RoutedEventArgs)
|
||||
DialogResult = False
|
||||
End Sub
|
||||
'</DialogResultButtons>
|
||||
|
||||
Private Sub Method1()
|
||||
'<HandleClosing>
|
||||
Dim marginsWindow As New Margins
|
||||
|
||||
AddHandler marginsWindow.Closed, Sub(sender As Object, e As EventArgs)
|
||||
MessageBox.Show($"You closed the margins window! It had the title of {marginsWindow.Title}")
|
||||
End Sub
|
||||
|
||||
marginsWindow.Show()
|
||||
'</HandleClosing>
|
||||
End Sub
|
||||
|
||||
Private Sub formatMarginsButton_Click(sender As Object, e As RoutedEventArgs)
|
||||
Method1()
|
||||
End Sub
|
||||
|
||||
Private Sub Method2()
|
||||
'<HandleDialogResponse>
|
||||
Dim marginsWindow As New Margins
|
||||
|
||||
Dim result As Boolean? = marginsWindow.ShowDialog()
|
||||
|
||||
If result = True Then
|
||||
' User accepted the dialog box
|
||||
MessageBox.Show("Your request will be processed.")
|
||||
Else
|
||||
' User cancelled the dialog box
|
||||
MessageBox.Show("Sorry it didn't work out, we'll try again later.")
|
||||
End If
|
||||
|
||||
marginsWindow.Show()
|
||||
'</HandleDialogResponse>
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user