From d143b7fcee59d3abff9ceef9b13ffaba5eaaf2da Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 29 Sep 2015 12:30:14 +0200 Subject: [PATCH] Make initial DropDown selection work Fixes #110 --- samples/XamlTestApplication/Views/MainWindow.paml | 10 ++-------- src/Markup/Perspex.Markup.Xaml/OmniXAML | 2 +- .../Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj | 1 + src/Perspex.Controls/DropDown.cs | 2 ++ src/Perspex.Controls/TextBlock.cs | 6 +++--- src/Perspex.SceneGraph/Media/FormattedText.cs | 4 ++++ 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/samples/XamlTestApplication/Views/MainWindow.paml b/samples/XamlTestApplication/Views/MainWindow.paml index a85c949f69..a58c1929ca 100644 --- a/samples/XamlTestApplication/Views/MainWindow.paml +++ b/samples/XamlTestApplication/Views/MainWindow.paml @@ -2,13 +2,7 @@ xmlns="https://github.com/perspex" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Perspex Test Application" Height="350" Width="525" SizeToContent="WidthAndHeight" > - - - Hello - World - - - + \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/OmniXAML b/src/Markup/Perspex.Markup.Xaml/OmniXAML index 1461be589a..49e6ec001f 160000 --- a/src/Markup/Perspex.Markup.Xaml/OmniXAML +++ b/src/Markup/Perspex.Markup.Xaml/OmniXAML @@ -1 +1 @@ -Subproject commit 1461be589a5d39d378fd177648c61a780271c742 +Subproject commit 49e6ec001f5873cf2290e0bc1f6f06ca9b9cf808 diff --git a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj index 6da087ac13..fea6a7f307 100644 --- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj +++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj @@ -57,6 +57,7 @@ + diff --git a/src/Perspex.Controls/DropDown.cs b/src/Perspex.Controls/DropDown.cs index dbfd03ea83..6ff5b5f343 100644 --- a/src/Perspex.Controls/DropDown.cs +++ b/src/Perspex.Controls/DropDown.cs @@ -140,6 +140,8 @@ namespace Perspex.Controls if (control != null) { + control.Measure(Size.Infinity); + SelectionBoxItem = new Rectangle { Width = control.DesiredSize.Width, diff --git a/src/Perspex.Controls/TextBlock.cs b/src/Perspex.Controls/TextBlock.cs index 463173cbc9..c9959ebeb3 100644 --- a/src/Perspex.Controls/TextBlock.cs +++ b/src/Perspex.Controls/TextBlock.cs @@ -235,9 +235,9 @@ namespace Perspex.Controls protected virtual FormattedText CreateFormattedText(Size constraint) { var result = new FormattedText( - Text, - FontFamily, - FontSize, + Text ?? string.Empty, + FontFamily ?? "Ariel", + FontSize > 0 ? FontSize : 12, FontStyle, TextAlignment, FontWeight); diff --git a/src/Perspex.SceneGraph/Media/FormattedText.cs b/src/Perspex.SceneGraph/Media/FormattedText.cs index 0d8b4eb298..2c78a234de 100644 --- a/src/Perspex.SceneGraph/Media/FormattedText.cs +++ b/src/Perspex.SceneGraph/Media/FormattedText.cs @@ -30,6 +30,10 @@ namespace Perspex.Media TextAlignment textAlignment, FontWeight fontWeight) { + Contract.Requires(text != null); + Contract.Requires(fontFamilyName != null); + Contract.Requires(fontSize > 0); + Text = text; FontFamilyName = fontFamilyName; FontSize = fontSize;