2011-11-23 45 views
0

我有一个2列的网格,我想包裹一个<Button>现在当我这样做,它完全螺丝网格的布局,我该如何禁用按钮的样式,使网格可以通过按钮点击,但看起来是一样的。把一个网格变成一个按钮

当我开始,我有以下XAML

<Grid> 
    <Grid x:Name="LayoutRoot" Background="White"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="180*" /> 
      <ColumnDefinition Width="296*" /> 
     </Grid.ColumnDefinitions> 

     <Image Grid.Column="0" Source="{Binding image}" Margin="10,10,10,10"/> 

     <StackPanel Grid.Column="1"> 
      <TextBlock Grid.Column="1" Text="{Binding hoursAgo}" FontSize="16" FontWeight="Light" FontStyle="Italic"></TextBlock> 
      <TextBlock FontSize="26.667" TextDecorations="Underline" Text="{Binding title}" TextWrapping="Wrap" Height="40" Width="295" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#FF3253B8" Canvas.Top="22" Grid.Column="1" >News Title Goes here</TextBlock> 
      <TextBlock FontSize="21.333" Text="{Binding description}" TextWrapping="Wrap" d:LayoutOverrides="VerticalAlignment" Grid.Column="1" /> 
     </StackPanel> 
    </Grid>   
</Grid> 

如果我使用Expression Blend将转换为一个按钮,它搅乱源了一下,这是不是我想要

<UserControl.Resources> 
    <Style x:Key="SelectedEntry" TargetType="Button"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Grid> 
         <Grid x:Name="LayoutRoot" Background="White"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="180*" /> 
           <ColumnDefinition Width="296*" /> 
          </Grid.ColumnDefinitions> 

          <Image Grid.Column="0" Source="{Binding image}" Margin="10,10,10,10"/> 

          <StackPanel Grid.Column="1"> 
           <TextBlock FontSize="26.667" TextDecorations="Underline" Text="{Binding title}" TextWrapping="Wrap" Height="40" Width="295" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="#FF3253B8" Canvas.Top="22" Grid.Column="1" ><Run Text="News Title Goes here"/></TextBlock> 
           <TextBlock FontSize="21.333" Text="{Binding description}" TextWrapping="Wrap" d:LayoutOverrides="VerticalAlignment" Grid.Column="1" /> 
          </StackPanel> 
         </Grid>   
         <ContentPresenter/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Setter Property="FontWeight" Value="Light"/> 
     <Setter Property="FontSize" Value="16"/> 
     <Setter Property="FontStyle" Value="Italic"/> 
    </Style> 
</UserControl.Resources> 

<Button Content="{Binding hoursAgo}" Style="{StaticResource SelectedEntry}"/> 

现在该描述未显示在网格中。

+0

您是否安装了Blend? –

+0

是的,我做的。你知道设置是什么吗?我会玩一玩。 –

+0

只是添加了一些截图。 :) –

回答

0

打开混合,用鼠标右键单击要变为ButtonGrid,然后选择Make Into Control

enter image description here

然后在弹出的窗口中,选择控制你想让它转了,在你的情况下,Button。 :) 而已。

enter image description here

+0

它真的把我的风格弄得一团糟,因为它坚持要改变我对内容展示者内容的绑定并创建一个奇怪的语法。 –

+0

它只为你创建一个'ContentPresenter' ......每个'Button'都有。你是什​​么意思?你需要发布一些代码,否则我不知道你真的想要什么。 –

+0

我已经为你发布了一些代码。 –