小编Rob*_*ies的帖子

在Windows 10 Universal Windows库中引用BindingFlags类型时无法加载程序集

运行单元测试时,调用我的可移植运行库DLL中引用"System.Reflection.TypeExtensions"的任何方法都会生成FileNotFound异常,搜索"System.Reflection.TypeExtensions".在Windows 10 Universal应用程序中执行相同的代码时不会发生此错误.

该项目是一个C#可移植运行时库,配置为支持.net Framework 4.6和Windows Universal 10.0.Test项目配置为使用.net Framework 4.6.

每当我尝试调用使用System.Reflection.BindingFlags类型的方法时,我都会收到以下异常.调用开始时会发生异常(大概是在启动函数时).

Test method Sfx.Test.SignalExpressionTest.TestAddExpressions threw exception: 
System.IO.FileNotFoundException: Could not load file or assembly 'System.Reflection.TypeExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.=== Pre-bind state information ===
LOG: DisplayName = System.Reflection.TypeExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
Run Code Online (Sandbox Code Playgroud)

.net c# portable-class-library visual-studio-2015

8
推荐指数
1
解决办法
1799
查看次数

绑定到TreeViewItem.IsExpanded.为什么这样做?

我觉得我在WPF数据绑定中缺少一些基本概念.我的装订是否会对我有用,这总是一杆三风.

在此示例中,我希望将TreeViewItem的IsExpanded属性双向绑定到绑定对象上的相应属性.它确实适用于第一个例子; 它与第二个没有关系.

有谁能解释为什么?我无法理解为什么第二个版本不起作用.如果可以的话,我不禁想到它会拯救我无尽的悲伤.

这在放入UserControl.Resources时有效(绑定到IsExpanded是通过应用于TreeViewItem的Style完成的:

    <Style TargetType="TreeViewItem">
        <Setter Property="IsExpanded" 
              Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
    </Style>
    <DataTemplate DataType="{x:Type viewModels:FolderItem}">
        <TreeViewItem ItemsSource="{Binding Folders}" 
           IsExpanded="{Binding Mode=TwoWay,Path=IsExpanded}" >
            <TreeViewItem.Header>
                <StackPanel Orientation="Vertical">
                    <Image Source="{Binding IconSource}" 
                          Width="16" Height="16" 
                           Margin="4,0,4,0" VerticalAlignment="Center" />
                    <TextBlock Text="{Binding Title}" 
                            VerticalAlignment="Center" />
                </StackPanel>
            </TreeViewItem.Header>
        </TreeViewItem>
    </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

这不(在数据模板中直接绑定到IsExpanded):

    <DataTemplate DataType="{x:Type viewModels:FolderItem}">
        <TreeViewItem ItemsSource="{Binding Folders}" 
           IsExpanded="{Binding Path=IsExpanded,Mode=TwoWay}" >
            <TreeViewItem.Header>
                <StackPanel Orientation="Vertical">
                    <Image Source="{Binding IconSource}" 
                          Width="16" Height="16" Margin="4,0,4,0"
                          VerticalAlignment="Center" />
                    <TextBlock Text="{Binding Title}"
                        VerticalAlignment="Center" />
                </StackPanel>
            </TreeViewItem.Header>
        </TreeViewItem>
    </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

DataTemplate用于以下Xaml片段,上面给出的数据模板用于执行数据转换.Documents是已正确绑定的FolderItems的可观察列表.

   <TreeView ItemsSource="{Binding Documents}" />
Run Code Online (Sandbox Code Playgroud)

两个DataTemplates都显示文件树.但在第二种情况下,IsExpanded没有绑定(双向或其他方式).

未显示FileTtem的DataTemplating,它是FolderItem的叶节点.

wpf treeviewitem

5
推荐指数
1
解决办法
3979
查看次数

更改 ChromeCast 默认媒体接收器上的客户端应用程序名称

我想将 Chromecast 默认媒体接收器的音频播放页面(而不是视频播放页面)上显示的文本“默认媒体接收器”更改为除此之外的任何内容。我正在开发一个 Android 应用程序。

我很难让我的网站托管服务启用 SSL。他们不会这样做,除非我升级到专用 IP 地址,即使是自签名证书,费用相当高)。所以我不得不在样式接收器/无样式表和默认媒体接收器之间做出选择。(是的,托管服务的变化正在风中。不要问)。

我更喜欢默认媒体接收器的外观。它启动得更快,启动页面上的 Cast 图标而不是我的应用程序名称更好看。

除了一个令人恼火的小细节。在默认媒体接收器上播放音轨时,应用程序的标题(“默认媒体接收器”)在播放音轨时会显示在 Chromecast 设备上非常漂亮的页面上。

有没有办法在不求助于样式化媒体接收器的情况下改变这种情况?

(eyeroll 指向评论中的回复......这是代码。我已经描述了我的尝试。)

  @Override
  public CastOptions getCastOptions(Context context) {
    return new CastOptions.Builder()
    // Use this line for styled/no-style-sheet.
    //.setReceiverApplicationId(context.getString(R.string.cast_app_id))
    // use this line for default receiver.
    .setReceiverApplicationId(
       CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
    .build();
  }
Run Code Online (Sandbox Code Playgroud)

android chromecast

5
推荐指数
1
解决办法
920
查看次数

Material Design 3:如何使工具栏与主表面颜色相同?

我希望我的 Android 应用程序的工具栏与主表面颜色相同(以及状态栏——这已经是干净的 Android Studio 项目中开箱即用的主表面颜色)。我的目标是 Material Design 3 UI 指南。

对于以前版本的 Android,有各种现有的答案,质量各异,涉及运行相当长的样式和主题兔子洞,以捕获工具栏中错误的 UI 部分(图标、菜单等)。在 Android 的各种早期版本中,存在主题覆盖以及可生成浅色/浅色工具栏或深色/深色工具栏应用程序的主题变体。但这些钩子似乎都不存在于 Material3 中——根据设计,Material3 应该具有相同颜色的工具栏。

使用相对默认的配置,我的工具栏是(我认为)原色背景,白天为白色文本,晚上为白色背景上的黑色(主?)文本(相对于主表面和辅助表面相反)。而且我找不到道德上相当于白天/夜间主题的灯光工具栏灯光背景,希望能够尊重那些拥有 android 12++ 的壁纸匹配颜色(我确实如此)。

我觉得我在这里缺少一些简单的东西。

Fwiw,我没有使用 CoordinatoryLayout/AppLayout —— 只是一个裸露的工具栏,因为之前与 CoordinatorLayout 的不愉快争论以及在全屏模式下运行 Activites,我也将在这个项目中这样做。(CoordinatorLayout 没有给我任何我想要的东西,并且破坏了很多我想要的)。

我确实尝试在工具栏上设置明确的颜色,并且当图标没有改变颜色时运行到这里。(我以前已经走过这条路,至少在三个版本的 Android 上。:-P)。

该应用程序是一个新创建的(大约一周前)Android 应用程序,使用 Android studio 和最新的 SDK 创建。应用程序主题似乎已指向材料 2,尽管材料 3 的所有依赖项都是最新的。很难说;所有 Android 文档都告诉您如何迁移旧应用程序,而不是如何创建新应用程序——这是一个奇怪的遗漏。

android material-design material-components-android android-12

1
推荐指数
1
解决办法
4312
查看次数