2013-04-03 4 views
1

Я хочу поместить крестик в правом верхнем углу моего диалога, не затрагивая поток остальной части диалогового окна, это кажется довольно сложным, когда оно связано с CSS?Элемент абсолютного положения WPF

В настоящее время это выравнивание содержимого около 20 пикселей с правой стороны, потому что его все еще в столбце 0 и столбце 1 занимает это пространство. В идеале весь контент будет находиться в пределах StackPanel, при этом кнопка закрытия будет располагаться в верхнем правом углу. В противном случае, я думаю, возможно, что содержимое будет охватывать два столбца? Как это исправить?

Вот мой текущий XAML:

<Grid Margin="10"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 

    <StackPanel Grid.Row="0"> 
     <TextBlock x:Name="UI_DialogTitle" Style="{StaticResource i2_TitleTextBlock}" Text="{TemplateBinding DialogTitle}" Visibility="{TemplateBinding DialogTitleVisibility}" Margin="0,0,0,10"/> 
     <ContentPresenter x:Name="TheContentPresenter"/> 
    </StackPanel> 

    <Button x:Name="UI_CloseDialog" Style="{StaticResource i2_CloseDialogButton}" Visibility="{TemplateBinding CloseButtonVisibility}" Grid.Column="1" Grid.Row="0"/> 
</Grid>  
+0

Можете ли вы добавить абстрактное изображение, показывающее, как текущий рендеринг и требуемый рендеринг, и я не понимаю, в чем ваша проблема в que .. 'Закрывающая кнопка' или' StackPanel Content'? –

+2

Вы ищете свойство ['Grid.ColumnSpan'] (http://msdn.microsoft.com/en-us/library/system.windows.controls.grid.columnspan.aspx)? – Olexander

+0

Действительно я/был - отправил бы код, который заставлял все это работать – Chris

ответ

0

я сделал что-то подобное. Проверьте btnClose и скриншот.

<Grid x:Name="LayoutRoot" Margin="2"> 
     <Border x:Name="PopupBorder" BorderBrush="SlateGray" BorderThickness="1.5" CornerRadius="12" Visibility="Visible" Opacity="20" Margin="0,0,0,0"> 
      <Border.Background> 
       <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
        <GradientStop Color="#FF000000"/> 
        <GradientStop Color="#CC4895DE" Offset="0.844"/> 
        <GradientStop Color="#FF346592" Offset="0.393"/> 
        <GradientStop Color="#FFFFFFFF" Offset="1"/> 
       </LinearGradientBrush> 
      </Border.Background> 
      <TextBox Height="26" Style="{StaticResource TextBoxStyle}" Margin="0,0,30,220" Name="txtQuotationNumber" Width="332" /> 

     </Border> 
     **<Button Margin="0,4,4,0" Click="OKButton_Click" Cursor="Hand" x:Name="btnClose" Style="{StaticResource CloseStyleX}" VerticalAlignment="Top" ToolTipService.ToolTip="Close Popup"/>** 

     -- Datagrid here 
     -- COMBOBOX HERE 

     <TextBox Height="26" Name="txtValue" IsTabStop="True" VerticalAlignment="Top" Margin="178,10,500,0"></TextBox> 
     <Button Content="Search" Click="btnSearch_Click" Style="{StaticResource ButtonStyle}" Height="26" HorizontalAlignment="Right" Margin="0,10,37,0" Name="btnSearch" VerticalAlignment="Top" Width="104" /> 
    </Grid> 

enter image description here

1

Оказывается, я нуждался в ColumnSpan собственности - это все работает сейчас

<Grid Margin="10"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 

    <StackPanel Grid.Row="0" Grid.ColumnSpan="2"> 
     <TextBlock x:Name="UI_DialogTitle" Style="{StaticResource i2_TitleTextBlock}" Text="{TemplateBinding DialogTitle}" Visibility="{TemplateBinding DialogTitleVisibility}" Margin="0,0,0,10"/> 
     <ContentPresenter x:Name="TheContentPresenter"/> 
    </StackPanel> 

    <Button x:Name="UI_CloseDialog" Style="{StaticResource i2_CloseDialogButton}" Visibility="{TemplateBinding CloseButtonVisibility}" Grid.Column="1" Grid.Row="0"/> 
</Grid>