2013-02-19 141 views
1

我正在使用xaml/c#在Windows 8應用程序上工作。 我需要更改PageHeaderTextStyle(在StandardStyles.xaml中定義)。xaml - 以編程方式更改StandardStyles

這是我PageHeaderTextStyle定義:

<Style x:Key="PageHeaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource HeaderTextStyle}"> 
    <Setter Property="TextWrapping" Value="NoWrap"/> 
    <Setter Property="VerticalAlignment" Value="Bottom"/> 
    <Setter Property="Margin" Value="0,0,30,40"/> 
    <Setter Property="Foreground" Value="White"/> 
</Style> 

你會如何改變Foreground編程屬性,以 「黑」?

回答

1

您確定需要以編程方式更改它嗎?

您可以通過在您的XAML中包含下面的代碼來正常加載樣式。您可以通過更改「BasedOn」屬性來擴展現有的PageHeaderTextStyle定義。現在「myPageHeaderTextStyle」將完全像PageHeaderTextStyle,只有您指定的更改。

<Style x:Key="myPageHeaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource PageHeaderTextStyle}"> 
    <Setter Property="Foreground" Value="Black"/> 
</Style> 

如果確實需要以編程方式改變它,你可以在Style類使用(這是你的「myPageHeaderTextStyle」的對象是什麼)。

+0

謝謝您的合格答案。 – Johann 2013-02-20 08:01:53

+0

只需要一點點解釋爲什麼我需要這樣做: 我想構建一個應用程序,類似於預裝在Windows 8上的Bing Travel應用程序。在此應用程序中,您有一個固定的標題和左側的大圖的頁面。由於標題在圖像上方,headerText顏色是白色的。如果用戶水平向右移動,並且只要headerText離開圖像,headerText顏色會發生變化(以確保對比度)。 我想「重建」這種效果,我看到的唯一解決方案是以編程方式更改樣式。如果有一個「更容易」的解決方案,我會很高興! – Johann 2013-02-20 08:08:38