【问题标题】:UWP - VisualStateManager - GridView ItemStyleUWP - VisualStateManager - GridView ItemStyle
【发布时间】:2020-02-07 22:34:44
【问题描述】:

再一次,我可能把简单的事情复杂化了......

我正在尝试对设置为 GridView ItemTemplate 的自定义控件应用不同的样式(取决于应用程序窗口宽度)。

我尝试只使用 VisualStateManager 并将样式属性设置为自定义控件,但它不起作用,因为控件是动态生成的。

我尝试的最新方法是更改​​整个 DataTemplate 而不仅仅是样式...

不幸的是它也不起作用,我得到以下异常:

System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.

在 Windows.UI.Xaml.FrameworkElement.MeasureOverride(Size availableSize)


XAML 代码:

<GridView x:Name="DATAGRID" ItemsSource="{Binding Data}" SelectionMode="Single">
    <GridView.ItemTemplate>
        <DataTemplate>
            <cc:MyControl x:Name="AA" Style="{StaticResource MyControlStyle1}">
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

有人知道这是什么意思以及如何解决吗?

谢谢你:)

【问题讨论】:

  • 你能发布 xaml 代码吗?
  • @Archana 抱歉回复晚了,但是,当然,ff 当然...这是带有简化 xaml 的 GridView:
  • 抱歉,我无法正确格式化“代码”块:(
  • @evilgugl 我意识到我来晚了,但你可以通过surrounding the code with 反引号` (就像`my code here`)在cmets 中插入代码,但更重要的是,你可以编辑您的原始问题并在那里正确格式化代码。在原始问题中插入更多代码来解决 cmets 甚至答案是公平的游戏。

标签: c# win-universal-app visualstatemanager


【解决方案1】:

在 ItemTemplate 中,您可以使用带有自适应触发器的视觉状态来根据屏幕宽度更改 UI 元素的属性。 https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.adaptivetrigger.aspx

【讨论】:

  • 谢谢,我已经从那里“复制”了代码:也许我做错了什么......但这就是我所拥有的:
  • 再一次,对不起,我只是不知道 cmets 中的 'code' 标签是如何工作的 :(
猜你喜欢
  • 2020-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
相关资源
最近更新 更多