定义多个时,无法解析ComponentResourceKey

时间:2011-09-01 13:34:20

标签: c# wpf .net-4.0

我在外部程序集中的ResourceDictionary中定义了3个样式,如下所示:

<Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type res:Common},
ResourceId=numbersOnly}" TargetType="TextBox">
...
</Style>

<Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type res:Common},
ResourceId=positiveInt}" TargetType="TextBox">
...
</Style>

<Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type res:Common},
ResourceId=positiveDecimal}" TargetType="TextBox">
...
</Style>

在同一个程序集中,我定义了一个这样的类:

public static class Common {
        public static ComponentResourceKey NumbersOnly {
            get {
                return new ComponentResourceKey(
                typeof(Common), "numbersOnly");
            }
        }
        public static ComponentResourceKey PositiveInt {
            get {
                return new ComponentResourceKey(
                typeof(Common), "positiveInt");
            }
        }
        public static ComponentResourceKey PositiveDecimal {
            get {
                return new ComponentResourceKey(
                typeof(Common), "positiveDecimal");
            }
        }
    }

我使用这样的样式:

<TextBox Style="{DynamicResource {x:Static segres:Common.NumbersOnly}}" />

如果我在上面的类中只定义了一个属性,但是如果我定义了多个(如上所述)资源,则无法解析。

为什么会这样?这种行为对我来说似乎不合逻辑。

1 个答案:

答案 0 :(得分:1)