2016-06-24 6 views

ответ

0

Нет сплиттера, так как контроля его нет.

Но вы можете найти здесь Splitter turorial, чтобы сделать его в uwp.

Код От Ссылка:

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 
+0

Вы думаете, что в коде достаточно комментариев? –

1

Сообщество развития Microsoft написал сетки сплиттер и является частью Microsoft.Toolkit.UWP.UI .Controls. На сегодняшний день этот контроль не был добавлен в пакет самородка, в конце концов, это будет ...

https://github.com/Microsoft/UWPCommunityToolkit

что-то еще, чтобы отметить это контроль сетки Splitter работает только на окнах 10 обновлений годовщины и больше.

+0

Правильный ответ. – Vincent