Ich habe das schon eine Weile versucht. Ich stecke einfach fest und komme nicht durch.Silverlight: Richten Sie Schaltflächensteuerelemente innerhalb von Datagrid-Zellen aus.
In der Datagrid-Zelle gibt es drei Steuerelemente.
1: Ein Hyperlink-Knopf 2: Eine Löschtaste 3: Eine Suchtaste
Was ich tun muß, ist die „clear“ und „open-Taste“ align rechts von der Säule auszurichten. Der Haken ist, dass die Spalte veränderbar ist. Ich habe versucht, der Hyperlink-Schaltfläche eine feste Breite zu geben, es sieht gut aus, aber es wird unordentlich, wenn die Größe der Spalte geändert wird.
Der Zellinhalt hat unter Stil.
<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>
tauschen Sie DockPanel für Grid mit der ersten Spalte '*' Größe, und die beiden, die angeblich auf dem rechten Flügel 'Auto' eingestellt sein und du bist fertig. –
Ich habe mit Grid versucht und die Spaltendefinitionen festgelegt. Es ist das gleiche Verhalten. Habe keine Unterschiede gesehen. vermisse ich etwas? – riteshmeher