我有以下资源ResourceDictionary xml文件,我正在尝试在代码隐藏中获取Property="Data"
setter值
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SampleProject.Layout">
<!-- User -->
<Style x:Key="Process" TargetType="Path">
<Setter Property="Data" Value="M24.5,0 L25.5,0 C39,0 z"/>
</Style>
</ResourceDictionary>
为此我尝试了以下内容
var myStyle = (Style)FindResource("User");
这是获得所有的设置者,我可以像这样得到特定的设定者
var myStyle = (Style)FindResource("Process");
foreach (var item in myStyle.Setters)
{
Setter val2 = (Setter)item;
if (val2.Property.ToString() == "Data")
{
string value = val2.Value.ToString();
}
}
一旦我调试了这个,我可以看到,虽然它的实际值M24.5,0 L25.5,0 C39,0 z
在从代码后面的代码中得到这个值后变成M24.5,0L25.5,0C39,0z
。
在0
之后删除空格,
如何在不重新格式化xaml文件的实际值的情况下获取精确值?
答案 0 :(得分:0)
如何在不重新格式化xaml文件的实际值的情况下获取精确值?
我不知道为什么你真的需要空间或原始的string
,但我可以告诉你,在XAML处理器解析了XAML之后,没有确切的string
值。
它将根据您在XAML标记中定义的Geometry
创建一个string
对象,之后不再检索string
。
获取原始string
的唯一方法是查看未编译的源文件。