- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 ContentDialog
,它有一个 ListView
。此 ListView 的
DataTemplate 包含一个Grid
,此Grid
有一个Button
。代码是这样的:
<ContentDialog x:Name="DownloadListDialog" x:FieldModifier="public" Grid.Column="1">
<ListView Name="AssetsListView" IsItemClickEnabled="False" Grid.Row="1" SelectionMode="Single" MaxHeight="500" ItemsSource="{x:Bind _viewModel.Assets, Mode=OneWay}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
...
...
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate x:DataType="viewModel:AssetViewModel">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="{x:Bind name}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind lblFileSize}"/>
<TextBlock Text="{x:Bind contentSize, Mode=OneWay}"/>
<TextBlock Text="{x:Bind contentUrl}" Visibility="Collapsed"/>
</StackPanel>
</StackPanel>
<Button Content="Download" Click="Button_Click" HorizontalAlignment="Right" Grid.Column="1"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentDialog>
这是我的 Button Click 事件处理程序:
private async void Button_Click(object sender, RoutedEventArgs e)
{
var grid = VisualTreeHelper.GetParent(sender as Button) as Grid;
...
...
}
问题是变量 VisualTreeHelper.GetParent(sender as Button) as Grid
在我的 PC 上总是返回 null
。但是当我在我的手机上部署时,同样的代码工作得很好(即,变量 grid
被分配了正确的值)。
应用最低版本:build 14393应用目标版本:Build 15063PC windows版本:Build 17134(版本1803)
注意:我已经尝试将应用目标版本更改为 1803,但问题仍然存在。
最佳答案
正如我从另一个问题中了解到的,有几种方法可以获取 VisualTreeHelper 的父级。可能是因为在您的移动设备或 PC 上,在后台加载了不同的东西,以便您可以找到网格对象的位置发生变化。
您可以查看此答案作为我上述内容的引用:FrameworkElement.Parent and VisualtreeHelper.GetParent behaves differently
关于c# - UWP VisualTreeHelper.GetParent() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50507068/
我有这个静态辅助函数: public static DependencyObject GetParentObject(DependencyObject child) {
我定义了以下 XAML。
我在 wpf 4.0 中有 UserControl,其中包含按钮、标签、文本框等...... 我想循环这些控件,当我得到一个按钮时,我想取它的名字并将其保存到我的列表中。基本上,我要做的就是在 Use
在可视化树中垂直和水平搜索最简单的方法是什么? 例如,我想从开始搜索的控件中找到一个不在父列表中的控件。 这是一个简单的示例(每个框代表一些 UI 控件): 例如,我从一个嵌套控件开始(Search-
我想在某些形状上使用 WPF HitTest 功能而不在屏幕上显示它们。这可能吗?此代码无法按我预期的方式工作。我该如何进行这项工作? [Test, Ignore, RequiresSTA] publ
在我的应用程序中,在 Viewport3D 对象之上有一个透明的 InkCanvas。 Viewport3D 显示了一个大的 3D 网格。用户将在 InkCanvas 上绘制草图,以便选择 Viewp
我正在使用 VisualTreeHelper.GetChildrenCount() 来查找子控件,但它总是返回 0。 这是我的代码
我有以下 C# 代码来查找 DepedendencyObject 的子项: public static IEnumerable FindVisualChildren(DependencyObject
我正在尝试在 Canvas 上对一堆用户控件进行 HitTest 。我不希望 HitTest() 全程遍历可视化树,因此我使用 FilterCallback 来确保只对 UserControl 进行
我有一个 ContentDialog,它有一个 ListView。此 ListView 的 DataTemplate 包含一个Grid,此Grid 有一个Button。代码是这样的:
在 WP7 应用程序中,我以递归方式使用 FrameworkElement.Parent 来确定特定元素是否在另一个元素内。但它并不总是能正常工作。 然后我将代码更改为递归使用 VisualtreeH
我修改了已接受答案中的代码 here返回第一个找到的某种类型的控件。但是,当我尝试从窗口本身开始遍历时,VisualTreeHelper.GetChildrenCount 返回 0,尽管上面放置了一个
如何提取 ListBoxItem 的父容器? 在下面的例子中,我可以去到 ListBoxItem,比它更高,我什么都没有: Private Sub B
我试图从我的 Silverlight for WP7 应用程序中的坐标中找到 UIElement。 这是我的 XAML:
我将焦点移至打开的 Popup: wcl:FocusHelper.IsFocused="{Binding RelativeSource={RelativeSource Self}, Path=IsOp
只是好奇——表面上看起来更尴尬,更不容易被发现,但有充分的理由吗? 最佳答案 我认为它是有意混淆了一点,因为大多数时候你不应该直接摆弄可视化树,符合“框架设计指南”“常用类应该遵循基本场景”的理念。
我是一名优秀的程序员,十分优秀!