天天看点

Win10 UI入门RelativePanel

Win10 UI入门RelativePanel
<RelativePanel Background="Black" >
            <Rectangle  x:Name="midRe" Fill="Red" Width="100" Height="100" 
                       RelativePanel.AlignHorizontalCenterWithPanel="True"
                       RelativePanel.AlignVerticalCenterWithPanel="True"/>
            
           <Rectangle x:Name="topLeftRe" Fill="Green" Width="100" Height="100"
                      RelativePanel.AlignLeftWithPanel="True"
                      RelativePanel.AlignTopWithPanel="True"/>

            <Rectangle x:Name="topRightRe" Fill="Yellow" Width="100" Height="100"
                      RelativePanel.AlignRightWithPanel="True"
                      RelativePanel.AlignTopWithPanel="True"/>

            <Rectangle Fill="Yellow" Width="100" Height="100" RelativePanel.Above="midRe" RelativePanel.AlignLeftWith="midRe"/>
            <Rectangle Fill="Yellow" Width="100" Height="100" RelativePanel.AlignTopWith="midRe" RelativePanel.LeftOf="midRe"/>
            <Rectangle Fill="Yellow" Width="100" Height="100" RelativePanel.AlignTopWith="midRe" RelativePanel.RightOf="midRe"/>
            <Rectangle Fill="Yellow" Width="100" Height="100" RelativePanel.Below="midRe" RelativePanel.AlignLeftWith="midRe"/>      

<Rectangle Fill="Yellow" Width="50" Height="50" RelativePanel.AlignHorizontalCenterWithPanel="True"

RelativePanel.AlignVerticalCenterWithPanel="True" RelativePanel.RightOf="midRe"

/>

<Rectangle x:Name="bottomLeftRe" Fill="Gray" Width="100" Height="100"
                      RelativePanel.AlignLeftWithPanel="True"
                       RelativePanel.AlignBottomWithPanel="True"/>

            <Rectangle x:Name="bottomRightRe" Fill="Blue" Width="100" Height="100"
                      RelativePanel.AlignRightWithPanel="True"
                      RelativePanel.AlignBottomWithPanel="True"/>
        </RelativePanel>      

后代代码

http://blog.falafel.com/windows-10-development-relativepanel/

http://stackoverflow.com/questions/31852833/relative-width-for-ui-elements-with-relativepanel-in-xaml-with-uwp-apps

 并且可以删除子项

Win10 UI入门RelativePanel
Win10 UI入门RelativePanel
/// <summary>
        /// ScrollViewer    scrollViewer = FindChildOfType<ScrollViewer>(listbox1);
        /// </summary>
        public T FindChildOfType<T>(DependencyObject root) where T : class
        {
            var queue = new Queue<DependencyObject>();
            queue.Enqueue(root);
            while (queue.Count > 0)
            {
                DependencyObject current = queue.Dequeue();
                for (int i = VisualTreeHelper.GetChildrenCount(current) - 1; 0 <= i; i--)
                {
                    var child = VisualTreeHelper.GetChild(current, i);
                    var typedChild = child as T;
                    if (typedChild != null)
                    {
                        return typedChild;
                    }
                    queue.Enqueue(child);
                }
            }
            return null;
        }
        public T FindParentOfType<T>(DependencyObject obj) where T : FrameworkElement
        {
            DependencyObject parent = VisualTreeHelper.GetParent(obj);
            while (parent != null)
            {
                if (parent is T)
                {
                    return (T)parent;
                }
                parent = VisualTreeHelper.GetParent(parent);
            }
            return null;
        }      

工具

Win10 UI入门RelativePanel