小编Cer*_*ate的帖子

从桌面应用程序调用Windows 10 Universal Class Library

在以前的开发中,我使用了一个可移植类库来共享Windows 8.1"Metro"应用程序和.NET/WPF桌面应用程序之间的代码.

Windows 10 Universal类库是否也可以从这些桌面应用程序中使用,如果没有,在这种情况下共享代码的推荐方法是什么?

.net portable-class-library windows-10

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

覆盖特定UserControl的Windows 8应用程序主题

我正在使用"黑暗"主题开发一个Windows应用商店应用,它适用于应用程序的主体.但是,对于设置弹出窗口,我想匹配系统提供的"权限"弹出窗口的外观,也就是说,白色为黑色.

不幸的是,在操作中使用Dark主题的每个控件都很难设置.

有没有办法使用"Light"主题,覆盖应用程序默认值,用于我用于我的设置窗格的UserControl,或者是执行此操作以复制主题文件的所有相关块的唯一方法进入UserControl的资源?

windows-8 winrt-xaml

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

在F#中输入和输出类型参数

我刚刚开始使用F#,而且关于投射的一些问题让我非常困惑.不幸的是,我的背景阅读试图弄清楚为什么让我更加困惑,所以我正在寻找一些具体的答案,我可以适应一般的解释......

我有一个由此函数生成的枚举的ReadOnlyCollection <'T>:

let GetValues<'T when 'T :> Enum> () =
    (new ReadOnlyCollection<'T>(Enum.GetValues (typeof<'T>) :?> 'T[])) :> IList<'T>
Run Code Online (Sandbox Code Playgroud)

我想要做的是找到其值所使用的枚举的所有位(即,按位或列表中的所有值),并将其作为通用枚举类型返回,'T.这样做的显而易见的方法似乎是:

let UsedBits<'T when 'T :> Enum> () =
    GetValues<'T>()
    |> Seq.fold (fun acc a -> acc ||| a) 0
Run Code Online (Sandbox Code Playgroud)

...除了无法编译之外,错误"此处不能使用声明的类型参数'T',因为在编译时无法解析类型参数."

我可以通过首先转换为Int32来完成实际的工作(我真的不想这样做,因为我希望这个函数适用于所有枚举而不管底层类型),即:

let UsedBits<'T when 'T :> Enum> () =
    GetValues<'T>()
    |> Seq.map (fun a -> Convert.ToInt32(a))
    |> Seq.fold (fun acc a -> acc ||| a) 0
Run Code Online (Sandbox Code Playgroud)

...但是然后结果产生为Int32.如果我尝试将其强制转换为'T,我再次遇到编译错误.

我不想在我的问题中过于具体,因为我不确定我应该询问哪些细节,所以 - 这种方法的缺陷在哪里?我该怎么办呢?

(编辑补充:,@ @ Daniel的回答

唉,这似乎是我不能理解上下文以便理解答案的情况之一,所以...

我理解内联和不同的约束在你的答案中做了什么,但作为一个F#新手,你是否会介意对这些事情进行一些扩展,以便我可以检查一下我的理解是不是基于什么?谢谢.

)

f# casting inline

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

PowerShell ISE 和 PowerShell.Exiting 事件

我正在使用 PowerShell.Exiting 引擎事件来保存我的命令历史记录并在我关闭 PowerShell 会话时进行一些其他整理,从而将其注册到我的配置文件中:

# Set up automatic functionality on engine exit.
Register-EngineEvent PowerShell.Exiting -SupportEvent -Action `
{
    #stuff
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我在控制台窗口中使用 PowerShell 时,这非常有效,但是当我在 ISE 中运行 PowerShell 时,PowerShell.Exiting 事件似乎永远不会触发,因为我没有放入任何东西,无论是通常的东西还是测试代码,曾经运行。

这是一个已知问题,如果是,是否有已知的解决方法或替代方法?

powershell powershell-ise

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