1 回答
TA贡献1856条经验 获得超17个赞
当我更改 ObservableCollection 时,例如 isVisible 值(通过过滤器中的选择显示或隐藏,项目根本没有改变。
Visibility是Enum但不是bool。您需要BoolToVisConverter为 xaml 制作。
public class BoolToVisConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return value is Visibility && (Visibility)value == Visibility.Visible;
}
}
项目的创建(我有 2000-3000 个项目)非常缓慢,并且在平移地图时移动有明显的滞后。有什么方法可以让它更愉快和响应更迅速吗?
MapItemsControl与ListViewand不同GridView,它不支持UI虚拟化。为了性能,请避免一次渲染太多项目
最后一个问题,尽管我设置了 RenderTransformOrigin="0.5,1",但它就像我设置了 RenderTransformOrigin="0.0,0.0",从左上边界渲染。
RenderTransformOrigin属性不用于设置AnchorPoint。要设置正确的布局,您可以设置NormalizedAnchorPoint.
<maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<Button x:Name="mapItemButton" Click="mapItemButton_Click" Background="Transparent">
<StackPanel>
<Border Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="{Binding DisplayName}"/>
</Border>
<Image Source="{Binding ImageSourceUri}"
maps:MapControl.NormalizedAnchorPoint="{Binding NormalizedAnchorPoint}"
maps:MapControl.Location="{Binding Location}">
<Image.Transitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Image.Transitions>
</Image>
</StackPanel>
</Button>
</DataTemplate>
</maps:MapItemsControl.ItemTemplate>
更多细节请参考官方代码示例。
- 1 回答
- 0 关注
- 86 浏览
添加回答
举报