none
Silverlight3 按钮插入图片问题 RRS feed

  • 问题

  •  <Button x:Name="Down"  Height="15" Width="30" Click="Down_Click">
                    <Button.Content>
                        <Image  Source="../image/Down.PNG"></Image>
                    </Button.Content>
                </Button>

    如何让图片占居整个按钮。

    2010年5月17日 8:23

答案

  • 抱歉,上面点错了。

    您是否能把您的代码贴上来看看?因为我这里确实是没有问题的。

    如果您是指button边缘的东西,连那些都不要的话,可以重写Button的Template:

    <Button Content="" Height="98" Width="200" Click="Button_Click">
      <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
          <Grid>
            <Image Source="pic.gif" Stretch="UniformToFill"/>
            <ContentPresenter RecognizesAccessKey="True" 
              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
          </Grid>
        </ControlTemplate>
      </Button.Template>
    </Button>
    

    2010年5月24日 6:56

全部回复

  •  <Button x:Name="Down"  Height="15" Width="30" Click="Down_Click">
             <Image  Source="../image/Down.PNG"></Image>
    </Button>
    BLOG:http://beniao.cnblogs.com MSN:beniao@live.cn
    • 已建议为答案 beniao 2010年5月18日 6:35
    • 取消建议作为答案 小达 2010年5月21日 3:44
    2010年5月18日 6:35
  • 这个也不行 效果都差不多

    就是让图片100%显示在按钮上 不要有按钮的东西 

    2010年5月21日 3:46
  • 将Image的Stretch属性设为UniformToFill或者Fill。
    • 已建议为答案 fuhonghai 2010年5月21日 8:42
    • 取消建议作为答案 小达 2010年5月21日 8:59
    2010年5月21日 4:33
  • 设置了在 blend里面无效

    <Button x:Name="Up"  Width="15" Click="Up_Click" Height="12">
                   
                        <Image Source="../image/Up.PNG" Width="15" Height="12" HorizontalAlignment="Center" VerticalAlignment="Center">
                         <Image.OpacityMask>
                          <ImageBrush/>
                         </Image.OpacityMask></Image>
                   
                </Button>

    2010年5月21日 8:59
  • 小达你好,请这样写:

    <Button x:Name="Down"  Height="15" Width="30" Click="Down_Click">
             <Image  Source="../image/Down.PNG" Stretch="UniformToFill"></Image>
    </Button>

    我已经用Blend 3以及Blend 4 RC测试,确定是可以达到效果的。
    • 已建议为答案 Gildor Wang 2010年5月21日 13:53
    • 取消建议作为答案 小达 2010年5月24日 2:28
    2010年5月21日 13:53
  • 在Blend 里面显示可以,但是页面上不一定可以。

    这么写在页面上还是达不到效果。

    2010年5月24日 2:31
  • 你好,

         你需要改Button的default style. 因为它本身有一些margin和padding的设置。所以你即使把Content stretch了也占不了整个button.

         你可以直接使用Image控件啊,它也有click事件。

    2010年5月24日 6:12
  • 抱歉,上面点错了。

    您是否能把您的代码贴上来看看?因为我这里确实是没有问题的。

    如果您是指button边缘的东西,连那些都不要的话,可以重写Button的Template:

    <Button Content="" Height="98" Width="200" Click="Button_Click">
      <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
          <Grid>
            <Image Source="pic.gif" Stretch="UniformToFill"/>
            <ContentPresenter RecognizesAccessKey="True" 
              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
          </Grid>
        </ControlTemplate>
      </Button.Template>
    </Button>
    

    2010年5月24日 6:56
  • 你好,

         你需要改Button的default style. 因为它本身有一些margin和padding的设置。所以你即使把Content stretch了也占不了整个button.

         你可以直接使用Image控件啊,它也有click事件。


    Image没有Click事件,只有MouseLeftButtonDown和MouseLeftButtonUp
    【EaranSE:中国最早上线&中国最好的Silverlight企业应用!】 【登录地址】http://zion.earan.net 【用户名】demo\test1 (test1至test49都可以) 【密码】aaaaaa (6个a) 【欢迎大家试用并提供反馈意见!】
    2010年5月24日 11:48
  • 你好,

          恩,对。 是MouseLeftButtonDown和Up事件

    2010年5月25日 6:50