2017-04-03 87 views
0

我已经folllowing资源的ResourceDictionary xml文件,和我想要得到的代码隐藏得到确切的价值setter属性值属性中的ResourceDictionary

<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> 

Property="Data"二传手价值,我试过以后的事

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

如何获得准确的值而不用重新格式化xaml文件的实际值?

我不知道为什么你实际需要的空间还是原来string但我可以告诉你,目前还没有确切string价值得到了至关重大XAML processer已解析的XAML。

它会根据您在XAML标记中定义的string创建一个Geometry对象,并且在此之后不会再有string被检索到。

获得原始string的唯一方法是查看未编译的源文件。

+0

然后如何获得'在未编译的源文件'中的值? – kez

+0

您可以复制XAML文件,将其“构建操作”设置为“内容”,并像从任何其他XML文件中那样提取值。 – mm8