我是Silverlight的新手,尝试使用嵌套的TextBlock创建一个Button,同时让它们都存在于Grid中。一切正常,只有文字是可点击的......
<Grid x:Name="ValueHeadingContainer" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2">
<Border Background="Transparent" BorderThickness="0,0,1,1" BorderBrush="#000" />
<Button Click="Button_Click" Name="ValueHeadingButton">
<Button.Template>
<ControlTemplate>
<TextBlock x:Name="ValueHeadingLabel"
Text="{Binding ValueLabel}"
Margin="10,0,0,0"
Style="{StaticResource FakeColumnHeader}"/>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
答案 0 :(得分:0)
如果你想要的只是一个按钮(不是模板),那就足够了:
<Button Click="Button_Click" Name="ValueHeadingButton">
<TextBlock x:Name="ValueHeadingLabel"
Text="{Binding ValueLabel}"
Margin="10,0,0,0"
Style="{StaticResource FakeColumnHeader}"/>
</Button>
即。你只需使用像<Button><TextBlock></TextBlock></Button>
这样没有内容模板的smth。
答案 1 :(得分:0)
只有文本块可以单击,因为您尚未定义任何其他将处理鼠标事件的元素。您需要在文本块周围放置一个包装器,以增加按钮的可点击表面区域。
我还建议您将TextBlock上的IsHitTestVisible设置为false,以防止它干扰任何其他鼠标事件。
<Button.Template>
<ControlTemplate>
<Border Background="Transparent">
<TextBlock x:Name="ValueHeadingLabel"
IsHitTestVisible="False"
Text="{Binding ValueLabel}"
Margin="10,0,0,0"
Style="{StaticResource FakeColumnHeader}"/>
</Border>
</ControlTemplate>
</Button.Template>