Search code examples
uwpsplitter

Is splitter control available in UWP?


I would like to use splitter control in UWP project. But I can't find the splitter control in UWP platform. Is there any other splitter control in UWP?


Solution

  • No the splitter as Control it self is not there.

    But you can find here Splitter an turorial to make one in uwp.

    Code From Link:

    XAML:

    <Border x:Name="padResize_NavBar" Grid.Row="1" Grid.Column="0" Height="50" Width="50" HorizontalAlignment="Left" VerticalAlignment="Center" Background="LightGray" IsHitTestVisible="True" Opacity="0.5"
    Margin="-25,0,0,0"
    PointerPressed="padResize_NavBar_PointerPressed"
    PointerEntered="padResize_NavBar_PointerEntered" PointerExited="padResize_NavBar_PointerExited" CornerRadius="25" RequestedTheme="Dark">
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" >&lt; &gt;</TextBlock>
    </Border>
    

    C#:

    #region [Resizing]
    //========================< Region: [Resizing] >========================
    #region Resizing_Globals
    //========================< Resizing_Globals >========================
    
    
    double ptrPoint_Offset_X = 0;
    
    //private void fl_Check_Resizing_Exit(object sender, PointerRoutedEventArgs e)
    //{
    // //----------------< fl_Check_Resizing_Exit() >----------------
    // if (is_Resizing_Thumbnails == true)
    // { fl_Resizing_Stop(); }
    // //----------------</ fl_Check_Resizing_Exit() >----------------
    //}
    
    
    //========================</ Resizing_Globals >========================
    #endregion
    
    #region Resize Thumbnails
    //========================< Resize_Thumbnails >========================
    bool is_Resizing_Thumbnails = false;
    private void padResize_Thumbnails_PointerEntered(object sender, PointerRoutedEventArgs e)
    {
    //----------------< btnGridSplitter_ColumnResize_PointerEntered() >----------------
    //Color on
    padResize_Thumbnails.Opacity = 1;
    //----------------</ btnGridSplitter_ColumnResize_PointerEntered() >----------------
    }
    private void padResize_Thumbnails_PointerPressed(object sender, PointerRoutedEventArgs e)
    {
    //----------------< btnGridSplitter_ColumnResize_PointerPressed() >----------------
    //set StartFlag
    if (is_Resizing_Thumbnails == false)
    {
    //*start only once. Pressed is called every time
    is_Resizing_Thumbnails = true;
    ptrPoint_Offset_X = e.GetCurrentPoint(padResize_Thumbnails).Position.X;
    }
    // ----------------</ btnGridSplitter_ColumnResize_PointerPressed() > ----------------
    }
    private void padResize_Thumbnails_PointerMoved(object sender, PointerRoutedEventArgs e)
    {
    //----------------< btnGridSplitter_ColumnResize_PointerMoved() >----------------
    if (is_Resizing_Thumbnails == true)
    {
    //< Get Pointer and Point >
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;
    Windows.UI.Input.PointerPoint ptrPoint = e.GetCurrentPoint(GridShow);
    Windows.UI.Input.PointerPoint ptrPoint_Offset = e.GetCurrentPoint(padResize_Thumbnails);
    //</ Get Pointer and Point >
    
    //--< check if Mouse is released >--
    //--< Check Mouse >--
    if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
    //-< check left mouse >-
    if (ptrPoint.Properties.IsLeftButtonPressed == false)
    {
    //< released >
    //*if release then stop resizing
    fl_Resizing_Thumbnails_Stop();
    return;
    //</ released>
    }
    //-</ check left mouse click >-
    }
    //--< check mouse click >--
    //--</ check if mouse is released >--
    
    //< get Point >
    //*relativ to GridShow
    double posX = ptrPoint.Position.X - ptrPoint_Offset_X;
    if (posX < 0) posX = 0;
    //</ get Point >
    
    //-< set Column-With >-
    colThumbnails.Width = new GridLength(posX);
    //-</ set Column-With >-
    
    tbxStatus.Text = "ptrPoint.Position=" + ptrPoint.Position.X + " Offset=" + ptrPoint_Offset_X;
    }
    //----------------</ btnGridSplitter_ColumnResize_PointerMoved() >----------------
    }
    private void padResize_Thumbnails_PointerExited(object sender, PointerRoutedEventArgs e)
    {
    //----------------< btnGridSplitter_ColumnResize_PointerExited() >----------------
    //Color off
    padResize_Thumbnails.Opacity = 0.3;
    //----------------</ btnGridSplitter_ColumnResize_PointerExited() >----------------
    }
    
    
    private void fl_Resizing_Thumbnails_Stop(object sender, PointerRoutedEventArgs e)
    {
    //----------------< fl_Resizing_Column_Stop() >----------------
    //*event from XAML
    fl_Resizing_Thumbnails_Stop();
    //----------------</ fl_Resizing_Column_Stop() >----------------
    }
    private void fl_Resizing_Thumbnails_Stop()
    {
    //< marker on >
    is_Resizing_Thumbnails = false;
    //</ marker off >
    
    //< Setting save>
    Windows.Storage.ApplicationData.Current.LocalSettings.Values["actColumn_Thumbnails"] = colNavBar.ActualWidth;
    //</ Setting save>
    //----------------</ fl_Resizing_Column_Stop() >----------------
    }
    //========================</ Resize Thumbnails >========================
    #endregion
    
    #region Resize Navbar
    //========================< Resize_NavBar >========================
    bool is_Resizing_NavBar = false;
    private void padResize_NavBar_PointerEntered(object sender, PointerRoutedEventArgs e)
    {
    //----------------< padResize_NavBar_PointerEntered() >----------------
    //Color on
    padResize_NavBar.Opacity = 1;
    //----------------</ padResize_NavBar_PointerEntered() >----------------
    }
    private void padResize_NavBar_PointerPressed(object sender, PointerRoutedEventArgs e)
    {
    //----------------< padResize_NavBar_PointerPressed() >----------------
    //set StartFlag
    if (is_Resizing_NavBar == false)
    {
    //*start only once pressed is called every time
    is_Resizing_NavBar = true;
    ptrPoint_Offset_X = e.GetCurrentPoint(padResize_NavBar).Position.X;
    }
    // ----------------</ padResize_NavBar_PointerPressed() > ----------------
    }
    private void padResize_NavBar_PointerMoved(object sender, PointerRoutedEventArgs e)
    {
    //----------------< padResize_NavBar_PointerMoved() >----------------
    if (is_Resizing_NavBar == true)
    {
    //< Pointer and Point check>
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;
    Windows.UI.Input.PointerPoint ptrPoint = e.GetCurrentPoint(BaseGrid);
    Windows.UI.Input.PointerPoint ptrPoint_Offset = e.GetCurrentPoint(padResize_NavBar);
    //</ Pointer and Point check>
    
    //--< check mouse released >--
    //--< Mouse Click check>--
    if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
    //-< check left mouseclick >-
    if (ptrPoint.Properties.IsLeftButtonPressed == false)
    {
    //< released>
    //*if relesed stop resicing
    fl_Resizing_NavBar_Stop();
    return;
    //</ released>
    }
    //-</ check left mouse >-
    }
    //--< Mouse click check >--
    //--</ check if mouse is released >--
    
    //< get Point >
    //*relativ to GridShow
    double posX = ptrPoint.Position.X - ptrPoint_Offset_X;
    if (posX < 10) posX = 10;
    //</ get Point >
    
    //-< set Column-With >-
    colNavBar.Width = new GridLength(posX);
    //-</ set Column-With >-
    
    tbxStatus.Text = "ptrPoint.Position=" + ptrPoint.Position.X + " Offset=" + ptrPoint_Offset_X;
    }
    //----------------</ btnGridSplitter_ColumnResize_PointerMoved() >----------------
    }
    private void padResize_NavBar_PointerExited(object sender, PointerRoutedEventArgs e)
    {
    //----------------< padResize_NavBar_PointerExited() >----------------
    //Farbe ausschalten
    padResize_NavBar.Opacity = 0.3;
    //----------------</ padResize_NavBar_PointerExited() >----------------
    }
    private void fl_Resizing_NavBar_Stop(object sender, PointerRoutedEventArgs e)
    {
    fl_Resizing_NavBar_Stop();
    }
    private void fl_Resizing_NavBar_Stop()
    {
    //< marker off >
    is_Resizing_NavBar = false;
    //</ marker off >
    
    //< Setting save>
    Windows.Storage.ApplicationData.Current.LocalSettings.Values["actColumn_NavBar"] = colNavBar.ActualWidth;
    //</ Setting speichern >
    //----------------</ fl_Resizing_Column_Stop() >----------------
    }
    
    
    
    
    
    
    //========================</ Resize_NavBar >========================
    #endregion
    //========================</ Region: [Resizing] >========================
    #endregion