如何在XAML中表示系统常量(如double.MaxValue)

Mik*_*ike 21 xaml constants

什么是xaml等价物MyProperty = double.MaxValue?我担心我需要使用类似MyProperty="{x:Static sys:Int32.MaxValue}"但不确定的东西,并且找不到相应的双倍.谢谢.

Mik*_*ike 37

实测:

将其添加到控件的名称空间部分以访问系统库:

... xmlns:sys="clr-namespace:System;assembly=mscorlib" ...
Run Code Online (Sandbox Code Playgroud)

然后,在ctr命名空间中设置MyControl控件的Maximum属性:

<ctr:MyControl Maximum="{x:Static sys:Double.MaxValue}"/>
Run Code Online (Sandbox Code Playgroud)

编辑:

{x:Static sys:Double.PositiveInfinity}
Run Code Online (Sandbox Code Playgroud)

也工作,但我怀疑在这种情况下使用它是不合适的,它似乎保留用于评估if (x==Double.PositiveInfinity).专家可以详细阐述......


小智 5

{x:Static sys:Double.PositiveInfinity}
Run Code Online (Sandbox Code Playgroud)

如果您MaxWidth对某个值说了一些控制设置,并且您想在某个祖先处通过 XAML 重置它,则可能很有用

这是因为double.PositiveInfinity is the default value (not set) forMaxWidth /MaxHeight`。

我发现这对于 Silverlight 媒体框架很有用,可以隐藏/显示视频区域(只听音频)。请参阅靠近底部的相关注释:

Silverlight媒体框架播放器如何隐藏视频区域