Cela fait un moment que j'essaie cela. Je suis juste coincé et je ne peux pas m'en sortir.Silverlight: Aligner les boutons de contrôle à l'intérieur de la cellule Datagrid
Il existe trois contrôles dans la cellule DataGrid.
1: un bouton hyperlien 2: Un bouton clair 3: Un bouton de recherche
Qu'est-ce que je dois faire est d'aligner la « claire » et « bouton d'ouverture » aligner à droite de la colonne. Le crochet est la colonne est redimensionnable. J'ai essayé de donner une largeur fixe au bouton de lien hypertexte, il semble bon, mais il devient désordonné lorsque la colonne est redimensionnée.
Le contenu de la cellule a le style ci-dessous.
<Style TargetType="controls:HyperlinkClear">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:HyperlinkClear">
<Border BorderThickness="0" Margin="2" BorderBrush="Transparent">
<Border.Resources>
<Style x:Name="buttonStyle"
TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Width="12"
Height="12">
<TextBlock Margin="{TemplateBinding Margin}" Text="x"></TextBlock>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Border.Resources>
<controlsToolkit:DockPanel Background="Transparent">
<Button Margin="-2,0,0,0" controlsToolkit:DockPanel.Dock="Right" HorizontalAlignment="Right" x:Name="MainSearchButton" Style="{StaticResource ButtonStyle}" IsTabStop="False"
Visibility ="{Binding IsRemoveButtonEnabled,Converter={StaticResource BoolToVisibilityConverter},Mode=TwoWay}">
<Image Source="./open.png" Height="14" Width="16" VerticalAlignment="Center"/>
</Button>
<Button controlsToolkit:DockPanel.Dock="Right" Cursor="hand"
Margin="3,-2,0,0" Visibility ="{Binding IsRemoveButtonEnabled,Converter={StaticResource BoolToVisibilityConverter},Mode=TwoWay}"
x:Name="RemoveItemButton" HorizontalAlignment="Right"
Style="{StaticResource buttonStyle}" IsTabStop="false"/>
<HyperlinkButton x:Name="HyperlinkButton" Style="{StaticResource HyperlinkButtonStyle}" Content="{TemplateBinding Content}" />
</controlsToolkit:DockPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Actuellement, il ressemble à ceci.
Swap vous DockPanel pour la grille avec la première colonne taille '' *, et les deux qui sont censés être sur le droit à 'Auto' et vous avez terminé. –
J'ai essayé avec Grid et défini les définitions de colonne. C'est le même comportement. Je n'ai pas vu de différences. Ai-je raté quelque chose? – riteshmeher