Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图像按钮顶部的文本块(Windows 8 XAML/C#)_C#_Xaml_Imagebutton_Textblock - Fatal编程技术网

图像按钮顶部的文本块(Windows 8 XAML/C#)

图像按钮顶部的文本块(Windows 8 XAML/C#),c#,xaml,imagebutton,textblock,C#,Xaml,Imagebutton,Textblock,有人可以给我一个例子,如何样式与XAML帽子有三种状态(悬停,正常,按下)按钮。我希望按钮的整个区域都被一个图像覆盖(三个不同的状态各一个),我希望文本位于顶部,对于不同的状态也有三种不同的颜色。我已经有了类似的东西(文本块上没有颜色状态)。此时我遇到的问题是textblock正在阻止Nearth下按钮的输入事件(我还没有实现textblock的颜色更改…) 当前代码: <DataTemplate x:Name="SubjectItemTemplate"> <Canva

有人可以给我一个例子,如何样式与XAML帽子有三种状态(悬停,正常,按下)按钮。我希望按钮的整个区域都被一个图像覆盖(三个不同的状态各一个),我希望文本位于顶部,对于不同的状态也有三种不同的颜色。我已经有了类似的东西(文本块上没有颜色状态)。此时我遇到的问题是textblock正在阻止Nearth下按钮的输入事件(我还没有实现textblock的颜色更改…)

当前代码:

<DataTemplate x:Name="SubjectItemTemplate">
    <Canvas Width="225" Height="225">
        <Button Canvas.Left="0" Canvas.Top="0"
                Command="{Binding ElementName=LayoutRoot, Path=DataContext.NavigateToUnitsPage}"
                CommandParameter="{Binding}">
            <Button.Template>
                <ControlTemplate>
                    <Grid Background="{Binding LightThemeColor}" Width="205" Height="205">

                        <controls:ImageButton HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,0,0,0"
                                              NormalStateImageSource="{Binding ImageUriNormal}"
                                              HoverStateImageSource="{Binding ImageUriHover}"
                                              PressedStateImageSource="{Binding ImageUriPressed}" Command="{Binding ElementName=LayoutRoot, Path=DataContext.NavigateToUnitsPage}"
                CommandParameter="{Binding}"/>
                        <TextBlock Text="{Binding Name}" FontSize="18" TextWrapping="Wrap" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,168,0,0" />

                    </Grid>
                </ControlTemplate>
            </Button.Template>

        </Button>
    </Canvas>
</DataTemplate>

使用
TextBlock
处理
ImageButton
事件的原因是
TextBlock
ImageButton
位于一条直线上,而不包含在
ImageButton
内。要更改此情况,必须将
TextBlock
放置在内e> 图像按钮

 <controls:ImageButton HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,0,0,0"
      NormalStateImageSource="{Binding ImageUriNormal}"
      HoverStateImageSource="{Binding ImageUriHover}"
      PressedStateImageSource="{Binding ImageUriPressed}" Command="{Binding ElementName=LayoutRoot, Path=DataContext.NavigateToUnitsPage}" CommandParameter="{Binding}" >
      <TextBlock Text="{Binding Name}" FontSize="18" TextWrapping="Wrap" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,168,0,0" />
 </controls:ImageButton>


什么意思
文本块正在阻止输入事件
?当我将鼠标移到imagebutton上时,图像将变为悬停图像。但是,当我将鼠标移到文本块(位于图像内部)上时图像不会更改为悬停状态。我也无法通过单击textblock区域中的图像触发命令。从XAML中,您的
textblock
ImageButton
对齐。您所说的“对齐”是什么意思?您的
TextBlock
元素不在
ImageButton
内,而是在它之后。