사용되며 정렬 응용 프로그램을 만드는 오전 어떤 경우에는 내가있는 gridview 항목을 숨길 내가이 사람과 같은 오류가 발생하는 경우의 GridView의 항목을 재 배열 할 수 없습니다 : 그래서WrapPanel이 UWP
Hide GridViewItem and reposition items in GridView
수정 프로그램을 구현 및 작동하지만 갑자기 내 GridView 내에서 항목을 드래그하고 재정렬 할 수 없습니다. 내 gridView.ItemsPanel
에 WrapPanel을 구현 한 후에 만 표시 할 수있는 항목에서 제거하고 즉시 다시 정렬 할 수 있습니다. . 내가 끌어 WrapPanel와의 GridView의 항목 순서를 변경하려고 할 때의
<Page
x:Class="ImageSorting.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ImageSorting"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:data ="using:ImageSorting.Models"
xmlns:toolkit="using:WinRTXamlToolkit.Controls"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid HorizontalAlignment="Stretch" Height="57" VerticalAlignment="Top">
<Border BorderBrush="Black" BorderThickness="0 0 0 1" HorizontalAlignment="Stretch" Height="57" VerticalAlignment="Top"/>
<Button x:Name="SelectFolder" Content="Select Folder" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,11,10,0" Background="#80a4ec" Click="SelectFolder_Click"/>
<Button x:Name="AddFolder" Content="Add Folder" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,11,125,0" Background="#84eeb1" Click="AddFolder_Click" />
<Button x:Name="Save" Content="Save" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,11,230,0" Background="#ece880" Click="Save_Click"/>
<ComboBox x:Name="ImageFolder" HorizontalAlignment="Left" VerticalAlignment="Top" Margin=" 20 11 0 0" SelectedIndex="0" SelectionChanged="ImageFolder_SelectionChanged">
<ComboBoxItem>All Images</ComboBoxItem>
</ComboBox>
</Grid>
<GridView x:Name="ImageGrid" HorizontalAlignment="Stretch" Margin="10,60,10,0" VerticalAlignment="Stretch" ItemsSource="{x:Bind ImgList, Mode=OneWay}" CanDragItems="True" AllowDrop="True" CanReorderItems="True" SelectionMode="Extended">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Images">
<StackPanel>
<Image x:Name="Image" Width="206" Height="158" Source="{x:Bind imageData}" DoubleTapped="Image_DoubleTapped"/>
<StackPanel Orientation="Horizontal">
<TextBlock HorizontalAlignment="Left" FontSize="15" Text="{x:Bind imageNumber}" Margin="10 5 0 0"/>
<TextBlock HorizontalAlignment="Left" TextAlignment="Left" Width="100" FontSize="15" Text="{x:Bind altChar}" Margin="10 5 0 0"/>
<CheckBox x:Name="altNumber" HorizontalAlignment="Right" MinWidth="0" Margin="35 0 0 0" Click="altNumber_Click"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" AllowDrop="True">
</toolkit:WrapPanel>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
<Grid x:Name="ConfirmGrid" HorizontalAlignment="Stretch" Height="50" VerticalAlignment="Bottom" Background="White" Visibility="Collapsed">
<Border BorderBrush="Black" BorderThickness="0 1 0 0" HorizontalAlignment="Stretch" Height="57" VerticalAlignment="Top" />
<Button x:Name="FolderConfirm" Content="Confirm" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,10,10,0" RenderTransformOrigin="-0.128,7.104" Click="FolderConfirm_Click" />
</Grid>
</Grid>
이미지 :
내가에 명시된 무언가를 놓치고 WinRTXamlToolkit, 또는이 문제를 해결할 방법이 없습니다.
UPDATE 2017 11월 27일
그래서 그래서 WrapPanel
클래스를 상속하고 거기에서 그것을 시도하여 winRT 툴킷에 대한 기능의 순서를 드래그 앤 드롭을 구현하려고 @ Xavier Xie - MSFT에 의해 제안 일부 땜질 후. 는 여기에 내가 지금까지 UWPCommunityToolkit 도 따라서 모든 동적 포장이 Panel
클래스를 상속해야한다고 나에게 일을 만드는 패널을 상속 같은 다른 라이브러리에서 Panel
클래스
WrapPanel
을 상속 WrapPanel
- winRT 툴킷을 발견 한거야.
Panel
클래스는 (그 중 하나 또는 내가 잘못된 일을 드래그하고) 항목 끌기 이벤트를 검출 코드가없는ItemsWrapPanel
이 불가능 나를 상속 할 만들기 인감 클래스입니다 그리고 그것은 상속 어떤 인터페이스에 간다 또한
그리고 이것은 내가 지금까지 발견 한 바를 결론 지었고, 내가 발견 한 것을 계속 업데이트 할 것이다.
크레딧은 저를 올바른 방향으로 가리키며 @ Xavier Xie - MSFT으로갑니다.
와우, 작동하지만 고맙습니다. 한 가지 문제가 있습니다. 'ItemsStackPanel'을 추가 한 후에 gridview 항목이 더 이상 포장되지 않습니다. 아마도 ItemsStackPanel이 구현하지 않았기 때문일 수 있습니다. 기본 'ItemsWrapGrid'와 같은 항목을 래핑 할 함수. 그리고 동적 인 포장은 필요 없으며 정적 폭과 높이를 가지고 있습니다. 어떻게 그렇게 할 수 있습니까? – Annonymous177
@ Annonymous177 네 말이 맞아. 'ItemsStackPanel'은 "wrap"함수를 구현하지 않았습니다. 사용자 정의 패널을 만들 수도 있지만 이렇게하면 "재배치"및 "둘러싸 기"기능을 모두 구현해야합니다. 그래서, 위 응답에서 말한 것처럼 WinRTXamlToolkit의 WrapPanel에 대한 "레코딩"을 구현하려고 할 수 있다고 제안했습니다. –
글쎄, 필자는 궁금하다. 궁금한 점은, 맞춤 패널을 만드는 방법에 대해 어떻게 가르쳐야하는지에 대한 지침을 찾을 수 없다는 점이다. – Annonymous177