【发布时间】:2012-02-01 13:01:03
【问题描述】:
我已经定义了一个静态资源:
<UserControl x:Class="MyProject.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
Width="255"
Height="300">
<UserControl.Resources>
<sys:Double x:Key="CornerRadiusValue">5</sys:Double>
</UserControl.Resources>
...
稍后在 XAML 文件中,我尝试在为边框设置左上角半径时使用该值:
<Border
Width="40"
Height="30"
BorderThickness="1,1,0,0"
BorderBrush="Red">
<Border.CornerRadius>
<CornerRadius TopLeft="{StaticResource CornerRadiusValue}" />
</Border.CornerRadius>
</Border>
在设计时,一切正常,更改 CornerRadiusValue 静态资源的值会更改边框上的角半径。但是,当我想运行它时,我得到一个 XamlParseException 异常消息:
无法设置只读属性“System.Windows.CornerRadius.TopLeft”。
我做错了什么?我如何使它工作?谢谢。
【问题讨论】:
-
请注意,我确实需要具体说明左上角。其他角应该绑定到其他一些静态资源值...
-
如果您想在运行时更改它,请将其设为 DynamicResource。
-
~10 年后,您的解决方案可以正常工作。也许他们改变了 CornerRadius 的定义方式。
标签: silverlight xaml resourcedictionary cornerradius