diff options
author | Samantha Houts <samantha@teamredwall.com> | 2016-09-27 11:12:49 -0700 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-09-27 11:12:49 -0700 |
commit | ee3c84f05175934a9d847a3d867e370c4b301a99 (patch) | |
tree | 7a7f246dcc0c3e70ed533415da5941838e16ef4e /Xamarin.Forms.ControlGallery.WindowsUniversal | |
parent | 3e0ee965d710768f1c434b469f8c1c8371b7659a (diff) | |
download | xamarin-forms-ee3c84f05175934a9d847a3d867e370c4b301a99.tar.gz xamarin-forms-ee3c84f05175934a9d847a3d867e370c4b301a99.tar.bz2 xamarin-forms-ee3c84f05175934a9d847a3d867e370c4b301a99.zip |
[Win] Will arrange native children of custom renderers (opt-in) (#322)
* Add repro for 42602
* [Win] Add option to arrange native children
* [Win] Don't allocate arrangedChildren unless required
Diffstat (limited to 'Xamarin.Forms.ControlGallery.WindowsUniversal')
-rw-r--r-- | Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs | 57 | ||||
-rw-r--r-- | Xamarin.Forms.ControlGallery.WindowsUniversal/Xamarin.Forms.ControlGallery.WindowsUniversal.csproj | 1 |
2 files changed, 58 insertions, 0 deletions
diff --git a/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs b/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs new file mode 100644 index 00000000..8d937d49 --- /dev/null +++ b/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs @@ -0,0 +1,57 @@ +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Shapes; +using Xamarin.Forms.Platform.UWP; + +[assembly: ExportRenderer(typeof(Xamarin.Forms.Controls.Bugzilla42602.TextBoxView), typeof(Xamarin.Forms.ControlGallery.WindowsUniversal.TextBoxViewRenderer))] +namespace Xamarin.Forms.ControlGallery.WindowsUniversal +{ + public class TextBoxViewRenderer : BoxViewRenderer + { + Canvas m_Canvas; + + protected override void OnElementChanged(ElementChangedEventArgs<BoxView> e) + { + base.OnElementChanged(e); + + ArrangeNativeChildren = true; + + if (m_Canvas != null) + Children.Remove(m_Canvas); + + m_Canvas = new Canvas() + { + Width = 200, + Height = 200, + Background = new SolidColorBrush(Windows.UI.Color.FromArgb(0, 255, 255, 255)), + IsHitTestVisible = false + }; + + Children.Add(m_Canvas); + + //ellipse + Shape ellipse = new Ellipse() + { + Width = 100, + Height = 100, + Fill = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 255, 0, 0)), + + }; + Canvas.SetLeft(ellipse, 0); + Canvas.SetTop(ellipse, 0); + m_Canvas.Children.Add(ellipse); + + //text + TextBlock text = new TextBlock() + { + FontSize = 50, + FontWeight = Windows.UI.Text.FontWeights.Normal, + Text = "hello world", + Foreground = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 255, 0, 0)) + }; + Canvas.SetLeft(text, 0); + Canvas.SetTop(text, 150); + m_Canvas.Children.Add(text); + } + } +} diff --git a/Xamarin.Forms.ControlGallery.WindowsUniversal/Xamarin.Forms.ControlGallery.WindowsUniversal.csproj b/Xamarin.Forms.ControlGallery.WindowsUniversal/Xamarin.Forms.ControlGallery.WindowsUniversal.csproj index 58ad67b3..7e1847ea 100644 --- a/Xamarin.Forms.ControlGallery.WindowsUniversal/Xamarin.Forms.ControlGallery.WindowsUniversal.csproj +++ b/Xamarin.Forms.ControlGallery.WindowsUniversal/Xamarin.Forms.ControlGallery.WindowsUniversal.csproj @@ -164,6 +164,7 @@ <DependentUpon>App.xaml</DependentUpon> </Compile> <Compile Include="BrokenNativeControl.cs" /> + <Compile Include="CustomRenderers.cs" /> <Compile Include="MainPage.xaml.cs"> <DependentUpon>MainPage.xaml</DependentUpon> </Compile> |