2012-04-04 2 views
0

私はBlendでボタンを選んだので、名前空間ヘッダーの後にこのxamlを入れました。実行時にボタンスタイルを割り当てます

<UserControl.Resources> 
     <Style x:Key="ButtonStyle1" TargetType="Button"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Grid> 
          <Rectangle Fill="#BF4FFFF" RadiusY="10" RadiusX="10" Stroke="Black"/> 
          <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

実行時に、私はこのスタイルにしたいボタンを生成しています。どのようにこれを行うことができます。
ボタンにはbutton.Styleというプロパティがあることに気がつきましたが、私はそれにスタイルを当てることができません。助言がありますか?

+0

コードで実行しますか? @ Zabavsky。 – Zabavsky

+0

。はい! – user1240679

+0

あなたのスタイルが同じコントロールのコードビハインド: 'button.Style = this.Resources [" ButtonStyle1 "]をスタイルとして'。 – Zabavsky

答えて

0

あなたは次のようにコード内であなたのリソースディクショナリにアクセスすることができます。私はあなたの塗りつぶしカラーコードが間違っていると思います

button.Style = (Style)Application.Current.Resources["ButtonStyle1"]; 
+0

エラー:暗黙的に型 'オブジェクト'を 'System.Windows.Style'に変換できません。明示的な変換が存在します(キャストがありませんか?) – user1240679

+0

編集されました。境界条件を処理すると確信しています – gaurawerma

0

。この別のコードを試してください

<UserControl.Resources> 
    <Style x:Key="ButtonStyle1" TargetType="Button"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Grid> 
         <Rectangle Fill="Red" RadiusY="10" RadiusX="10" Stroke="Black"/> 
         <ContentPresenter HorizontalAlignment="{TemplateBinding   HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</UserControl.Resources> 


<Grid x:Name="LayoutRoot" Background="White"> 
     <Button Content="Button" Height="48" Style="{StaticResource ButtonStyle1}" HorizontalAlignment="Left" Margin="70,71,0,0" Name="button1" VerticalAlignment="Top" Width="178" /> 
</Grid> 
+0

最初の2つのアルファベットは、このような塗りつぶしのカラーフォーマットの透明度を示しています。それには問題ありません。 – user1240679

関連する問題