12 changed files with 892 additions and 978 deletions
@ -1,153 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
|
||||
<PropertyGroup> |
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
|
||||
<ProjectGuid>{B6FDF644-8EE5-4A6B-8ECC-C2C2E4DAF116}</ProjectGuid> |
|
||||
<OutputType>WinExe</OutputType> |
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder> |
|
||||
<RootNamespace>TestApplication</RootNamespace> |
|
||||
<AssemblyName>TestApplication</AssemblyName> |
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
|
||||
<FileAlignment>512</FileAlignment> |
|
||||
<NuGetPackageImportStamp>caf18def</NuGetPackageImportStamp> |
|
||||
</PropertyGroup> |
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
|
||||
<DebugSymbols>true</DebugSymbols> |
|
||||
<DebugType>full</DebugType> |
|
||||
<Optimize>false</Optimize> |
|
||||
<OutputPath>bin\Debug-Mono\</OutputPath> |
|
||||
<BaseIntermediateOutputPath>obj\Debug-Mono</BaseIntermediateOutputPath> |
|
||||
<DefineConstants>TRACE;DEBUG;PERSPEX_CAIRO;PERSPEX_GTK</DefineConstants> |
|
||||
<ErrorReport>prompt</ErrorReport> |
|
||||
<WarningLevel>4</WarningLevel> |
|
||||
<Prefer32Bit>true</Prefer32Bit> |
|
||||
</PropertyGroup> |
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
|
||||
<PlatformTarget>AnyCPU</PlatformTarget> |
|
||||
<DebugType>pdbonly</DebugType> |
|
||||
<Optimize>true</Optimize> |
|
||||
<OutputPath>bin\Release-Mono\</OutputPath> |
|
||||
<BaseIntermediateOutputPath>obj\Release-Mono</BaseIntermediateOutputPath> |
|
||||
<DefineConstants>TRACE</DefineConstants> |
|
||||
<ErrorReport>prompt</ErrorReport> |
|
||||
<WarningLevel>4</WarningLevel> |
|
||||
</PropertyGroup> |
|
||||
<ItemGroup> |
|
||||
<Reference Include="System" /> |
|
||||
<Reference Include="System.Core" /> |
|
||||
<Reference Include="System.Drawing" /> |
|
||||
<Reference Include="System.Reactive.Windows.Threading"> |
|
||||
<HintPath>..\packages\Rx-Xaml.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll</HintPath> |
|
||||
</Reference> |
|
||||
<Reference Include="System.Windows.Forms" /> |
|
||||
<Reference Include="System.Xml.Linq" /> |
|
||||
<Reference Include="System.Data.DataSetExtensions" /> |
|
||||
<Reference Include="Microsoft.CSharp" /> |
|
||||
<Reference Include="System.Data" /> |
|
||||
<Reference Include="System.Xml" /> |
|
||||
<Reference Include="WindowsBase" /> |
|
||||
<Reference Include="ReactiveUI"> |
|
||||
<HintPath>..\packages\reactiveui-core.6.4.0.1\lib\Net45\ReactiveUI.dll</HintPath> |
|
||||
</Reference> |
|
||||
<Reference Include="Splat"> |
|
||||
<HintPath>..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath> |
|
||||
</Reference> |
|
||||
<Reference Include="System.Reactive.Core"> |
|
||||
<HintPath>..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll</HintPath> |
|
||||
</Reference> |
|
||||
<Reference Include="System.Reactive.Interfaces"> |
|
||||
<HintPath>..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll</HintPath> |
|
||||
</Reference> |
|
||||
<Reference Include="System.Reactive.Linq"> |
|
||||
<HintPath>..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll</HintPath> |
|
||||
</Reference> |
|
||||
<Reference Include="System.Reactive.PlatformServices"> |
|
||||
<HintPath>..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll</HintPath> |
|
||||
</Reference> |
|
||||
</ItemGroup> |
|
||||
<ItemGroup> |
|
||||
<Compile Include="App.cs" /> |
|
||||
<Compile Include="Program.cs" /> |
|
||||
<Compile Include="Properties\AssemblyInfo.cs" /> |
|
||||
</ItemGroup> |
|
||||
<ItemGroup> |
|
||||
<None Include="App.config" /> |
|
||||
<None Include="packages.config" /> |
|
||||
</ItemGroup> |
|
||||
<ItemGroup> |
|
||||
<ProjectReference Include="..\Cairo\Perspex.Cairo\Perspex.Cairo.csproj"> |
|
||||
<Project>{FB05AC90-89BA-4F2F-A924-F37875FB547C}</Project> |
|
||||
<Name>Perspex.Cairo</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Animation\Perspex.Animation.csproj"> |
|
||||
<Project>{d211e587-d8bc-45b9-95a4-f297c8fa5200}</Project> |
|
||||
<Name>Perspex.Animation</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Application\Perspex.Application.csproj"> |
|
||||
<Project>{799A7BB5-3C2C-48B6-85A7-406A12C420DA}</Project> |
|
||||
<Name>Perspex.Application</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Base\Perspex.Base.csproj"> |
|
||||
<Project>{B09B78D8-9B26-48B0-9149-D64A2F120F3F}</Project> |
|
||||
<Name>Perspex.Base</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Controls\Perspex.Controls.csproj"> |
|
||||
<Project>{D2221C82-4A25-4583-9B43-D791E3F6820C}</Project> |
|
||||
<Name>Perspex.Controls</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Diagnostics\Perspex.Diagnostics.csproj"> |
|
||||
<Project>{7062AE20-5DCC-4442-9645-8195BDECE63E}</Project> |
|
||||
<Name>Perspex.Diagnostics</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Input\Perspex.Input.csproj"> |
|
||||
<Project>{62024B2D-53EB-4638-B26B-85EEAA54866E}</Project> |
|
||||
<Name>Perspex.Input</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Interactivity\Perspex.Interactivity.csproj"> |
|
||||
<Project>{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}</Project> |
|
||||
<Name>Perspex.Interactivity</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Layout\Perspex.Layout.csproj"> |
|
||||
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project> |
|
||||
<Name>Perspex.Layout</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.SceneGraph\Perspex.SceneGraph.csproj"> |
|
||||
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project> |
|
||||
<Name>Perspex.SceneGraph</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Styling\Perspex.Styling.csproj"> |
|
||||
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project> |
|
||||
<Name>Perspex.Styling</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Perspex.Themes.Default\Perspex.Themes.Default.csproj"> |
|
||||
<Project>{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}</Project> |
|
||||
<Name>Perspex.Themes.Default</Name> |
|
||||
</ProjectReference> |
|
||||
<ProjectReference Include="..\Gtk\Perspex.Gtk\Perspex.Gtk.csproj"> |
|
||||
<Project>{54F237D5-A70A-4752-9656-0C70B1A7B047}</Project> |
|
||||
<Name>Perspex.Gtk</Name> |
|
||||
</ProjectReference> |
|
||||
</ItemGroup> |
|
||||
<ItemGroup> |
|
||||
<Content Include="github_icon.png"> |
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
|
||||
</Content> |
|
||||
</ItemGroup> |
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
|
||||
<Import Project="..\packages\SharpDX.2.6.3\build\SharpDX.targets" Condition="Exists('..\packages\SharpDX.2.6.3\build\SharpDX.targets')" /> |
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
|
||||
<PropertyGroup> |
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> |
|
||||
</PropertyGroup> |
|
||||
<Error Condition="!Exists('..\packages\SharpDX.2.6.3\build\SharpDX.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SharpDX.2.6.3\build\SharpDX.targets'))" /> |
|
||||
</Target> |
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
|
||||
Other similar extension points exist, see Microsoft.Common.targets. |
|
||||
<Target Name="BeforeBuild"> |
|
||||
</Target> |
|
||||
<Target Name="AfterBuild"> |
|
||||
</Target> |
|
||||
--> |
|
||||
</Project> |
|
||||
@ -0,0 +1,833 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Reactive.Linq; |
||||
|
using System.Text; |
||||
|
using Perspex; |
||||
|
using Perspex.Animation; |
||||
|
using Perspex.Collections; |
||||
|
using Perspex.Controls; |
||||
|
using Perspex.Controls.Html; |
||||
|
using Perspex.Controls.Primitives; |
||||
|
using Perspex.Controls.Shapes; |
||||
|
using Perspex.Controls.Templates; |
||||
|
using Perspex.Diagnostics; |
||||
|
using Perspex.Layout; |
||||
|
using Perspex.Media; |
||||
|
using Perspex.Media.Imaging; |
||||
|
using TestApplication; |
||||
|
|
||||
|
namespace TestApplication |
||||
|
{ |
||||
|
class MainWindow |
||||
|
{ |
||||
|
private static readonly PerspexList<Node> s_treeData = new PerspexList<Node> |
||||
|
{ |
||||
|
new Node |
||||
|
{ |
||||
|
Name = "Root 1", |
||||
|
Children = new PerspexList<Node> |
||||
|
{ |
||||
|
new Node |
||||
|
{ |
||||
|
Name = "Child 1", |
||||
|
}, |
||||
|
new Node |
||||
|
{ |
||||
|
Name = "Child 2", |
||||
|
Children = new PerspexList<Node> |
||||
|
{ |
||||
|
new Node |
||||
|
{ |
||||
|
Name = "Grandchild 1", |
||||
|
}, |
||||
|
new Node |
||||
|
{ |
||||
|
Name = "Grandmaster Flash", |
||||
|
}, |
||||
|
} |
||||
|
}, |
||||
|
new Node |
||||
|
{ |
||||
|
Name = "Child 3", |
||||
|
}, |
||||
|
} |
||||
|
}, |
||||
|
new Node |
||||
|
{ |
||||
|
Name = "Root 2", |
||||
|
}, |
||||
|
}; |
||||
|
|
||||
|
private static readonly PerspexList<Item> s_listBoxData = new PerspexList<Item> |
||||
|
{ |
||||
|
new Item { Name = "Item 1", Value = "Item 1 Value" }, |
||||
|
new Item { Name = "Item 2", Value = "Item 2 Value" }, |
||||
|
new Item { Name = "Item 3", Value = "Item 3 Value" }, |
||||
|
new Item { Name = "Item 4", Value = "Item 4 Value" }, |
||||
|
new Item { Name = "Item 5", Value = "Item 5 Value" }, |
||||
|
new Item { Name = "Item 6", Value = "Item 6 Value" }, |
||||
|
new Item { Name = "Item 7", Value = "Item 7 Value" }, |
||||
|
new Item { Name = "Item 8", Value = "Item 8 Value" }, |
||||
|
}; |
||||
|
|
||||
|
public static Window Create() |
||||
|
{ |
||||
|
|
||||
|
TabControl container; |
||||
|
|
||||
|
Window window = new Window |
||||
|
{ |
||||
|
Title = "Perspex Test Application", |
||||
|
Width = 900, |
||||
|
Height = 480, |
||||
|
Content = new Grid |
||||
|
{ |
||||
|
ColumnDefinitions = new ColumnDefinitions |
||||
|
{ |
||||
|
new ColumnDefinition(1, GridUnitType.Star), |
||||
|
new ColumnDefinition(1, GridUnitType.Star), |
||||
|
}, |
||||
|
RowDefinitions = new RowDefinitions |
||||
|
{ |
||||
|
new RowDefinition(GridLength.Auto), |
||||
|
new RowDefinition(1, GridUnitType.Star), |
||||
|
new RowDefinition(GridLength.Auto), |
||||
|
}, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
(container = new TabControl |
||||
|
{ |
||||
|
Padding = new Thickness(5), |
||||
|
Items = new[] |
||||
|
{ |
||||
|
ButtonsTab(), |
||||
|
TextTab(), |
||||
|
HtmlTab(), |
||||
|
ImagesTab(), |
||||
|
ListsTab(), |
||||
|
LayoutTab(), |
||||
|
AnimationsTab(), |
||||
|
}, |
||||
|
Transition = new CrossFade(TimeSpan.FromSeconds(0.25)), |
||||
|
[Grid.RowProperty] = 1, |
||||
|
[Grid.ColumnSpanProperty] = 2, |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
}; |
||||
|
|
||||
|
container.Classes.Add(":container"); |
||||
|
|
||||
|
|
||||
|
window.Show(); |
||||
|
return window; |
||||
|
} |
||||
|
|
||||
|
private static TabItem ButtonsTab() |
||||
|
{ |
||||
|
var result = new TabItem |
||||
|
{ |
||||
|
Header = "Button", |
||||
|
Content = new ScrollViewer() |
||||
|
{ |
||||
|
CanScrollHorizontally = false, |
||||
|
Content = new StackPanel |
||||
|
{ |
||||
|
Margin = new Thickness(10), |
||||
|
Orientation = Orientation.Vertical, |
||||
|
Gap = 4, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Button", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A button control", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new Button |
||||
|
{ |
||||
|
Width = 150, |
||||
|
Content = "Button" |
||||
|
}, |
||||
|
new Button |
||||
|
{ |
||||
|
Width = 150, |
||||
|
Content = "Disabled", |
||||
|
IsEnabled = false, |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Margin = new Thickness(0, 40, 0, 0), |
||||
|
Text = "ToggleButton", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A toggle button control", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new ToggleButton |
||||
|
{ |
||||
|
Width = 150, |
||||
|
IsChecked = true, |
||||
|
Content = "On" |
||||
|
}, |
||||
|
new ToggleButton |
||||
|
{ |
||||
|
Width = 150, |
||||
|
IsChecked = false, |
||||
|
Content = "Off" |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
private static TabItem HtmlTab() |
||||
|
{ |
||||
|
return new TabItem |
||||
|
{ |
||||
|
Header = "Text", |
||||
|
Content = new ScrollViewer() |
||||
|
{ |
||||
|
CanScrollHorizontally = false, |
||||
|
Content = new StackPanel() |
||||
|
{ |
||||
|
Margin = new Thickness(10), |
||||
|
Orientation = Orientation.Vertical, |
||||
|
Gap = 4, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "TextBlock", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A control for displaying text.", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", |
||||
|
FontSize = 11 |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", |
||||
|
FontSize = 11, |
||||
|
FontWeight = FontWeight.Medium |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", |
||||
|
FontSize = 11, |
||||
|
FontWeight = FontWeight.Bold |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", |
||||
|
FontSize = 11, |
||||
|
FontStyle = FontStyle.Italic, |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Margin = new Thickness(0, 40, 0, 0), |
||||
|
Text = "HtmlLabel", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A label capable of displaying HTML content", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new HtmlLabel |
||||
|
{ |
||||
|
Background = SolidColorBrush.Parse("#CCCCCC"), |
||||
|
Padding = new Thickness(5), |
||||
|
Text = @"<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href=""#"">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
|
||||
|
<h2>Header Level 2</h2> |
||||
|
|
||||
|
<ol> |
||||
|
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li> |
||||
|
<li>Aliquam tincidunt mauris eu risus.</li> |
||||
|
</ol> |
||||
|
|
||||
|
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote> |
||||
|
|
||||
|
<h3>Header Level 3</h3> |
||||
|
|
||||
|
<ul> |
||||
|
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li> |
||||
|
<li>Aliquam tincidunt mauris eu risus.</li> |
||||
|
</ul>"
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
private static TabItem TextTab() |
||||
|
{ |
||||
|
return new TabItem |
||||
|
{ |
||||
|
Header = "Input", |
||||
|
Content = new ScrollViewer() |
||||
|
{ |
||||
|
Content = new StackPanel |
||||
|
{ |
||||
|
Margin = new Thickness(10), |
||||
|
Orientation = Orientation.Vertical, |
||||
|
Gap = 4, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "TextBox", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A text box control", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
|
||||
|
new TextBox { Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", Width = 200}, |
||||
|
new TextBox { Width = 200, Watermark="Watermark"}, |
||||
|
new TextBox { Width = 200, Watermark="Floating Watermark", UseFloatingWatermark = true }, |
||||
|
new TextBox { AcceptsReturn = true, TextWrapping = TextWrapping.Wrap, Width = 200, Height = 150, Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est." }, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Margin = new Thickness(0, 40, 0, 0), |
||||
|
Text = "CheckBox", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A check box control", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new CheckBox { IsChecked = true, Margin = new Thickness(0, 0, 0, 5), Content = "Checked" }, |
||||
|
new CheckBox { IsChecked = false, Content = "Unchecked" }, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Margin = new Thickness(0, 40, 0, 0), |
||||
|
Text = "RadioButton", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A radio button control", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new RadioButton { IsChecked = true, Content = "Option 1" }, |
||||
|
new RadioButton { IsChecked = false, Content = "Option 2" }, |
||||
|
new RadioButton { IsChecked = false, Content = "Option 3" }, |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
private static TabItem ListsTab() |
||||
|
{ |
||||
|
return new TabItem |
||||
|
{ |
||||
|
Header = "Lists", |
||||
|
Content = new ScrollViewer() |
||||
|
{ |
||||
|
CanScrollHorizontally = false, |
||||
|
Content = new StackPanel |
||||
|
{ |
||||
|
HorizontalAlignment = HorizontalAlignment.Left, |
||||
|
Orientation = Orientation.Vertical, |
||||
|
VerticalAlignment = VerticalAlignment.Top, |
||||
|
Gap = 4, |
||||
|
Margin = new Thickness(10), |
||||
|
DataTemplates = new DataTemplates |
||||
|
{ |
||||
|
new FuncDataTemplate<Item>(x => |
||||
|
new StackPanel |
||||
|
{ |
||||
|
Gap = 4, |
||||
|
Orientation = Orientation.Horizontal, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new Image { Width = 50, Height = 50, Source = new Bitmap("github_icon.png") }, |
||||
|
new TextBlock { Text = x.Name, FontSize = 18 } |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "ListBox", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A list box control.", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new ListBox |
||||
|
{ |
||||
|
BorderThickness = 2, |
||||
|
Items = s_listBoxData, |
||||
|
Height = 300, |
||||
|
Width = 300, |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Margin = new Thickness(0, 40, 0, 0), |
||||
|
Text = "TreeView", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A tree view control.", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new TreeView |
||||
|
{ |
||||
|
Name = "treeView", |
||||
|
Items = s_treeData, |
||||
|
Height = 300, |
||||
|
BorderThickness = 2, |
||||
|
Width = 300, |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
private static TabItem ImagesTab() |
||||
|
{ |
||||
|
var imageCarousel = new Carousel |
||||
|
{ |
||||
|
Width = 400, |
||||
|
Height = 400, |
||||
|
Transition = new PageSlide(TimeSpan.FromSeconds(0.25)), |
||||
|
Items = new[] |
||||
|
{ |
||||
|
new Image { Source = new Bitmap("github_icon.png"), Width = 400, Height = 400 }, |
||||
|
new Image { Source = new Bitmap("pattern.jpg"), Width = 400, Height = 400 }, |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
var next = new Button |
||||
|
{ |
||||
|
VerticalAlignment = VerticalAlignment.Center, |
||||
|
Padding = new Thickness(20), |
||||
|
Content = new Perspex.Controls.Shapes.Path |
||||
|
{ |
||||
|
Data = StreamGeometry.Parse("M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"), |
||||
|
Fill = Brushes.Black |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
var prev = new Button |
||||
|
{ |
||||
|
VerticalAlignment = VerticalAlignment.Center, |
||||
|
Padding = new Thickness(20), |
||||
|
Content = new Perspex.Controls.Shapes.Path |
||||
|
{ |
||||
|
Data = StreamGeometry.Parse("M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"), |
||||
|
Fill = Brushes.Black |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
prev.Click += (s, e) => |
||||
|
{ |
||||
|
if (imageCarousel.SelectedIndex == 0) |
||||
|
imageCarousel.SelectedIndex = 1; |
||||
|
else |
||||
|
imageCarousel.SelectedIndex--; |
||||
|
}; |
||||
|
|
||||
|
next.Click += (s, e) => |
||||
|
{ |
||||
|
if (imageCarousel.SelectedIndex == 1) |
||||
|
imageCarousel.SelectedIndex = 0; |
||||
|
else |
||||
|
imageCarousel.SelectedIndex++; |
||||
|
}; |
||||
|
|
||||
|
return new TabItem |
||||
|
{ |
||||
|
Header = "Images", |
||||
|
Content = new ScrollViewer |
||||
|
{ |
||||
|
Content = new StackPanel |
||||
|
{ |
||||
|
HorizontalAlignment = HorizontalAlignment.Left, |
||||
|
Orientation = Orientation.Vertical, |
||||
|
VerticalAlignment = VerticalAlignment.Top, |
||||
|
Gap = 4, |
||||
|
Margin = new Thickness(10), |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Carousel", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "An items control that displays its items as pages that fill the controls.", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new StackPanel |
||||
|
{ |
||||
|
Name = "carouselVisual", |
||||
|
Orientation = Orientation.Horizontal, |
||||
|
Gap = 4, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
prev, |
||||
|
imageCarousel, |
||||
|
next |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
private static TabItem LayoutTab() |
||||
|
{ |
||||
|
return new TabItem |
||||
|
{ |
||||
|
Header = "Layout", |
||||
|
Content = new ScrollViewer |
||||
|
{ |
||||
|
Content = new StackPanel |
||||
|
{ |
||||
|
HorizontalAlignment = HorizontalAlignment.Left, |
||||
|
Orientation = Orientation.Vertical, |
||||
|
VerticalAlignment = VerticalAlignment.Top, |
||||
|
Gap = 4, |
||||
|
Margin = new Thickness(10), |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Grid", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Lays out child controls according to a grid.", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new Grid |
||||
|
{ |
||||
|
Width = 600, |
||||
|
ColumnDefinitions = new ColumnDefinitions |
||||
|
{ |
||||
|
new ColumnDefinition(1, GridUnitType.Star), |
||||
|
new ColumnDefinition(1, GridUnitType.Star), |
||||
|
}, |
||||
|
|
||||
|
RowDefinitions = new RowDefinitions |
||||
|
{ |
||||
|
new RowDefinition(1, GridUnitType.Auto), |
||||
|
new RowDefinition(1, GridUnitType.Auto) |
||||
|
}, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
|
||||
|
new Rectangle |
||||
|
{ |
||||
|
Fill = SolidColorBrush.Parse("#FF5722"), |
||||
|
[Grid.ColumnSpanProperty] = 2, |
||||
|
Height = 200, |
||||
|
Margin = new Thickness(2.5) |
||||
|
}, |
||||
|
new Rectangle |
||||
|
{ |
||||
|
Fill = SolidColorBrush.Parse("#FF5722"), |
||||
|
[Grid.RowProperty] = 1, |
||||
|
Height = 100, |
||||
|
Margin = new Thickness(2.5) |
||||
|
}, |
||||
|
new Rectangle |
||||
|
{ |
||||
|
Fill = SolidColorBrush.Parse("#FF5722"), |
||||
|
[Grid.RowProperty] = 1, |
||||
|
[Grid.ColumnProperty] = 1, |
||||
|
Height = 100, |
||||
|
Margin = new Thickness(2.5) |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Margin = new Thickness(0, 40, 0, 0), |
||||
|
Text = "StackPanel", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A panel which lays out its children horizontally or vertically.", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new StackPanel |
||||
|
{ |
||||
|
Orientation = Orientation.Vertical, |
||||
|
Gap = 4, |
||||
|
Width = 300, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new Rectangle |
||||
|
{ |
||||
|
Fill = SolidColorBrush.Parse("#FFC107"), |
||||
|
Height = 50, |
||||
|
}, |
||||
|
new Rectangle |
||||
|
{ |
||||
|
Fill = SolidColorBrush.Parse("#FFC107"), |
||||
|
Height = 50, |
||||
|
}, |
||||
|
new Rectangle |
||||
|
{ |
||||
|
Fill = SolidColorBrush.Parse("#FFC107"), |
||||
|
Height = 50, |
||||
|
}, |
||||
|
} |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Margin = new Thickness(0, 40, 0, 0), |
||||
|
Text = "Canvas", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A panel which lays out its children by explicit coordinates.", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
new Canvas |
||||
|
{ |
||||
|
Background = Brushes.Yellow, |
||||
|
Width = 300, |
||||
|
Height = 400, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new Rectangle |
||||
|
{ |
||||
|
Fill = Brushes.Blue, |
||||
|
Width = 63, |
||||
|
Height = 41, |
||||
|
[Canvas.LeftProperty] = 40, |
||||
|
[Canvas.TopProperty] = 31, |
||||
|
}, |
||||
|
new Ellipse |
||||
|
{ |
||||
|
Fill = Brushes.Green, |
||||
|
Width = 58, |
||||
|
Height = 58, |
||||
|
[Canvas.LeftProperty] = 130, |
||||
|
[Canvas.TopProperty] = 79, |
||||
|
}, |
||||
|
} |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
private static TabItem AnimationsTab() |
||||
|
{ |
||||
|
Border border1; |
||||
|
Border border2; |
||||
|
RotateTransform rotate; |
||||
|
Button button1; |
||||
|
|
||||
|
var result = new TabItem |
||||
|
{ |
||||
|
Header = "Animations", |
||||
|
Content = new StackPanel |
||||
|
{ |
||||
|
Orientation = Orientation.Vertical, |
||||
|
Gap = 4, |
||||
|
Margin = new Thickness(10), |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "Animations", |
||||
|
FontWeight = FontWeight.Medium, |
||||
|
FontSize = 20, |
||||
|
Foreground = SolidColorBrush.Parse("#212121"), |
||||
|
}, |
||||
|
new TextBlock |
||||
|
{ |
||||
|
Text = "A few animations showcased below", |
||||
|
FontSize = 13, |
||||
|
Foreground = SolidColorBrush.Parse("#727272"), |
||||
|
Margin = new Thickness(0, 0, 0, 10) |
||||
|
}, |
||||
|
(button1 = new Button |
||||
|
{ |
||||
|
Content = "Animate", |
||||
|
Width = 120, |
||||
|
[Grid.ColumnProperty] = 1, |
||||
|
[Grid.RowProperty] = 1, |
||||
|
}), |
||||
|
new Canvas |
||||
|
{ |
||||
|
ClipToBounds = false, |
||||
|
Children = new Controls |
||||
|
{ |
||||
|
(border1 = new Border |
||||
|
{ |
||||
|
Width = 100, |
||||
|
Height = 100, |
||||
|
HorizontalAlignment = HorizontalAlignment.Center, |
||||
|
VerticalAlignment = VerticalAlignment.Center, |
||||
|
Background = Brushes.Crimson, |
||||
|
RenderTransform = new RotateTransform(), |
||||
|
Child = new TextBox |
||||
|
{ |
||||
|
Background = Brushes.White, |
||||
|
Text = "Hello!", |
||||
|
HorizontalAlignment = HorizontalAlignment.Center, |
||||
|
VerticalAlignment = VerticalAlignment.Center, |
||||
|
}, |
||||
|
[Canvas.LeftProperty] = 100, |
||||
|
[Canvas.TopProperty] = 100, |
||||
|
}), |
||||
|
(border2 = new Border |
||||
|
{ |
||||
|
Width = 100, |
||||
|
Height = 100, |
||||
|
HorizontalAlignment = HorizontalAlignment.Center, |
||||
|
VerticalAlignment = VerticalAlignment.Center, |
||||
|
Background = Brushes.Coral, |
||||
|
Child = new Image |
||||
|
{ |
||||
|
Source = new Bitmap("github_icon.png"), |
||||
|
HorizontalAlignment = HorizontalAlignment.Center, |
||||
|
VerticalAlignment = VerticalAlignment.Center, |
||||
|
}, |
||||
|
RenderTransform = (rotate = new RotateTransform |
||||
|
{ |
||||
|
PropertyTransitions = new PropertyTransitions |
||||
|
{ |
||||
|
RotateTransform.AngleProperty.Transition(500), |
||||
|
} |
||||
|
}), |
||||
|
PropertyTransitions = new PropertyTransitions |
||||
|
{ |
||||
|
Layoutable.WidthProperty.Transition(300), |
||||
|
Layoutable.HeightProperty.Transition(1000), |
||||
|
}, |
||||
|
[Canvas.LeftProperty] = 400, |
||||
|
[Canvas.TopProperty] = 100, |
||||
|
}), |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
|
||||
|
button1.Click += (s, e) => |
||||
|
{ |
||||
|
if (border2.Width == 100) |
||||
|
{ |
||||
|
border2.Width = border2.Height = 400; |
||||
|
rotate.Angle = 180; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
border2.Width = border2.Height = 100; |
||||
|
rotate.Angle = 0; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
var start = Animate.Stopwatch.Elapsed; |
||||
|
var degrees = Animate.Timer |
||||
|
.Select(x => |
||||
|
{ |
||||
|
var elapsed = (x - start).TotalSeconds; |
||||
|
var cycles = elapsed / 4; |
||||
|
var progress = cycles % 1; |
||||
|
return 360.0 * progress; |
||||
|
}); |
||||
|
|
||||
|
border1.RenderTransform.Bind( |
||||
|
RotateTransform.AngleProperty, |
||||
|
degrees, |
||||
|
BindingPriority.Animation); |
||||
|
|
||||
|
return result; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,21 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
<PropertyGroup> |
||||
|
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> |
||||
|
<HasSharedItems>true</HasSharedItems> |
||||
|
<SharedGUID>78345174-5b52-4a14-b9fd-d5f2428137f0</SharedGUID> |
||||
|
</PropertyGroup> |
||||
|
<PropertyGroup Label="Configuration"> |
||||
|
<Import_RootNamespace>TestApplication</Import_RootNamespace> |
||||
|
</PropertyGroup> |
||||
|
<ItemGroup> |
||||
|
<Compile Include="$(MSBuildThisFileDirectory)App.cs" /> |
||||
|
<Compile Include="$(MSBuildThisFileDirectory)GalleryStyle.cs" /> |
||||
|
<Compile Include="$(MSBuildThisFileDirectory)Item.cs" /> |
||||
|
<Compile Include="$(MSBuildThisFileDirectory)MainWindow.cs" /> |
||||
|
<Compile Include="$(MSBuildThisFileDirectory)Node.cs" /> |
||||
|
</ItemGroup> |
||||
|
<ItemGroup> |
||||
|
<EmbeddedResource Include="$(MSBuildThisFileDirectory)html.htm" /> |
||||
|
</ItemGroup> |
||||
|
</Project> |
||||
@ -0,0 +1,13 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
<PropertyGroup Label="Globals"> |
||||
|
<ProjectGuid>78345174-5b52-4a14-b9fd-d5f2428137f0</ProjectGuid> |
||||
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion> |
||||
|
</PropertyGroup> |
||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" /> |
||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" /> |
||||
|
<PropertyGroup /> |
||||
|
<Import Project="TestApplicationShared.projitems" Label="Shared" /> |
||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" /> |
||||
|
</Project> |
||||
Loading…
Reference in new issue