2017-04-03 110 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