2011-11-23 26 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

我已經爲你發佈了一些代碼。 –