Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用多个静态资源在XAML中分配属性值_C#_Wpf_Xaml_Staticresource - Fatal编程技术网

C# 如何使用多个静态资源在XAML中分配属性值

C# 如何使用多个静态资源在XAML中分配属性值,c#,wpf,xaml,staticresource,C#,Wpf,Xaml,Staticresource,在MainWindow.xaml中,我试图使用两个StaticResource元素来定义网格中文本框边框的厚度。我似乎不能在BorderThickness规范中多次使用StaticResource 工作的代码段是 xmlns:syw="clr-namespace:System.Windows;assembly=PresentationFramework" 编辑器指出逗号在该位置是意外的,不会编译 我只是格式不正确吗?我想您在这里要做的是使用所需参数定义厚度,如下所示: <Window.R

MainWindow.xaml
中,我试图使用两个
StaticResource
元素来定义网格中文本框边框的厚度。我似乎不能在
BorderThickness
规范中多次使用
StaticResource

工作的代码段是

xmlns:syw="clr-namespace:System.Windows;assembly=PresentationFramework"
编辑器指出逗号在该位置是意外的,不会编译


我只是格式不正确吗?

我想您在这里要做的是使用所需参数定义厚度,如下所示:

<Window.Resources>
    <syw:Thickness x:Key="borderThickness">5.0, 5.0, 1.0, 1.0</syw:Thickness>
</Window.Resources>

5.0, 5.0, 1.0, 1.0
您可以按如下方式使用它:

<TextBox BorderThickness="{StaticResource borderThickness}"/>


这应该给你你想要的行为。

我想你想在这里做的是用你需要的参数定义一个厚度,比如:

<Window.Resources>
    <syw:Thickness x:Key="borderThickness">5.0, 5.0, 1.0, 1.0</syw:Thickness>
</Window.Resources>

5.0, 5.0, 1.0, 1.0
您可以按如下方式使用它:

<TextBox BorderThickness="{StaticResource borderThickness}"/>


这将为您提供所需的行为。

声明其他资源

<sys:Double x:Key="dThick">5.0</sys:Double>
<sys:Double x:Key="dThin">1.0</sys:Double>
5.0
1
并使用标记语法和边界两侧的双资源值设置厚度:

<TextBox.BorderThickness>
    <syw:Thickness Left="{StaticResource dThick}" Top="{StaticResource dThick}"
                   Right="{StaticResource dThin}" Bottom="{StaticResource dThin}"/>

</TextBox.BorderThickness>


BorderThickness=“{staticResourceKey=thick}”
是一个标记扩展,可以正常工作

BorderThickness=“5.0,5.0,1.0,1.0”
之所以有效,是因为存在关联的类型转换器,它可以将带有逗号分隔数字的
字符串转换为
厚度


BorderThickness=“{StaticResource-ResourceKey=thick},{StaticResource-ResourceKey=thin},{StaticResource-ResourceKey=thin}”
-只是xaml中不支持声明其他资源

<sys:Double x:Key="dThick">5.0</sys:Double>
<sys:Double x:Key="dThin">1.0</sys:Double>
5.0
1
并使用标记语法和边界两侧的双资源值设置厚度:

<TextBox.BorderThickness>
    <syw:Thickness Left="{StaticResource dThick}" Top="{StaticResource dThick}"
                   Right="{StaticResource dThin}" Bottom="{StaticResource dThin}"/>

</TextBox.BorderThickness>


BorderThickness=“{staticResourceKey=thick}”
是一个标记扩展,可以正常工作

BorderThickness=“5.0,5.0,1.0,1.0”
之所以有效,是因为存在关联的类型转换器,它可以将带有逗号分隔数字的
字符串转换为
厚度


BorderThickness=“{staticResourceKey=thick},{staticResourceKey=thin},{staticResourceKey=thin},{staticResourceKey=thin}”
-xaml中不支持这一点,问题是您试图用一个字符串绑定多个值,您需要创建一个设置所有边框大小的厚度定义或用户多绑定可能的重复问题是,您试图用一个字符串绑定多个值,您需要创建一个设置所有边框大小的厚度定义或用户多绑定luxun的可能重复项,实际上,我想对许多文本框的不同侧面使用
,这就是我分别指定它们的原因。啊,我错过了。我想@ASh的答案会给你你想要的。鲁迅,实际上我想对许多文本框的不同侧面使用
,这就是为什么我分别指定它们的原因。啊,我错过了。我认为@ASh的答案会给你你想要的。好答案,可能值得一提的是,这也可以在样式解决方案中完成,具有我需要的灵活性。谢谢。回答得好,值得一提的是,这也可以在样式解决方案中完成,具有我所需的灵活性。谢谢