wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了windows-phone-7 – 为什么我不能点击/点击Border / ContentControl中的空白区域而不将孩子的背景设置为透明?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述@H_874_4@ 我终于能够基于ContentControl创建一个“简单”的透明按钮控件.但是,有人可以解释为什么我不能点击/点击控件的任何空白区域,直到我将子元素的背景设置为透明?在以下情况下我也遇到了这个问题: >我试图使用Border >我设置按钮的ControlTemplate而不是ContentTemplate. 这是我的“按钮”类: public class TransparentButton : C
我终于能够基于ContentControl创建一个“简单”的透明按钮控件.但是,有人可以解释为什么我不能点击/点击控件的任何空白区域,直到我将子元素的背景设置为透明?在以下情况下我也遇到了这个问题:

>我试图使用Border
>我设置按钮的ControlTemplate而不是ContentTemplate.

这是我的“按钮”类:

public class TransparentButton : ContentControl {
    public TransparentButton() {            
        HorizontalContentAlignment = HorizontalAlignment.Stretch;
    }

    public override void OnApplyTemplate() {
        var child = Content as Grid;

        if (child != null) {
            child.BACkground = new SolidColorBrush(Colors.Transparent);
        }

        base.onApplyTemplate();
    }
}

这对我使用时的情况非常具体(假设一个Grid子),但它有效.我使用它的原因是启用了TiltEffect的列表(非ListBox).

问题的背景:

<ItemsControl x:Name="Items" toolkit:TiltEffect.IsTiltEnabled="True">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <controls:TransparentButton 
                cal:message.Attach="[Event Tap] = [Action Go($dataContext)]">
                <Grid>
                    <StackPanel HorizontalAlignment="Left">
                        <TextBlock Text="{Binding Test}" />                            
                    </StackPanel>
                    <StackPanel HorizontalAlignment="Right">
                        <TextBlock Text="{Binding Test2}" />                            
                    </StackPanel>
                </Grid>
            </controls:TransparentButton>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

如果在项目内的StackPanel之间单击,则不会触发任何事件,也不会发生任何事件.只有当网格的背景是透明的时候才会“占用空间”.

我来自网络背景,所以这很令人困惑;即使没有设置背景,包含元素也应该“可以测试”.

没有背景的对象通常在XAML术语中称为空心或不可命中.因此必须设置背景以使对象响应命中.要实现透明对象的命中测试,应将背景设置为透明.

有关命中测试的更多信息

http://msdn.microsoft.com/en-us/library/ms752097.aspx

大佬总结

以上是大佬教程为你收集整理的windows-phone-7 – 为什么我不能点击/点击Border / ContentControl中的空白区域而不将孩子的背景设置为透明?全部内容,希望文章能够帮你解决windows-phone-7 – 为什么我不能点击/点击Border / ContentControl中的空白区域而不将孩子的背景设置为透明?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。