2

ティッカーシンボルと画像を含むカスタムボタンがあります。ボタンをクリックしたいときのonMouseoverを除いて、すべてが必要なとおりに機能します。ボタン全体(カーソルの手)は、テキストボックスを含まないボタンの一部(画像を含む)にマウスを合わせると表示されます。したがって、銘柄記号(十字線はハンドカーソルではないことを示しています)をクリックしても、コマンドは実行されません。私は愚かな何かが欠けていて、それに指を置くことができません。どんな助けでも大歓迎です。これは私のリソース辞書からのものです:

<Style x:Key="TickerButtonStyle2" TargetType="{x:Type Controls:DataGridCell}">
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="BorderBrush" Value="Transparent" />
        <Setter Property="Background"  Value="Transparent" />
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Button>
                        <Button.Resources>
                            <Style TargetType="Button">
                                <Setter Property="Command" Value="{Binding SwitchViewCommand, 
                                        RelativeSource={RelativeSource FindAncestor,      
                                        AncestorType={x:Type local:MainView}}}" />
                                <Setter Property="CommandParameter" Value="{Binding Ticker}"/>
                                <Setter Property="Cursor" Value="Hand"/>
                                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                                <Setter Property="VerticalContentAlignment" Value="Stretch"/>
                                <Setter Property="Background"  Value="Transparent" />
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="Button">
                                            <Border Name="bd" BorderBrush="Transparent"
                                                              BorderThickness="0"
                                                              Margin="0"
                                                              Background="Transparent">
                                                <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" Background="Transparent">
                                                    <TextBox Name="txt" IsReadOnly="True" 
                                                         BorderThickness="0"
                                                         BorderBrush="Transparent"
                                                         Background="Transparent"
                                                         TextAlignment="Left"
                                                         Foreground="White"
                                                         FontFamily="Ariel" 
                                                         FontSize="12"
                                                         Text="{Binding Path=Ticker, Converter={StaticResource tickerSymbolDisplay}}"
                                                         />
                                                    <Image Width="16" Height="11" Stretch="Fill" Source="{Binding Path=Ticker, Converter={StaticResource tickerImageDisplay}}" />
                                                </StackPanel>
                                            </Border>
                                            <ControlTemplate.Triggers>
                                                <Trigger Property="IsMouseOver" Value="true">
                                                    <Setter TargetName="bd" Property="Background" Value="Transparent"/>
                                                    <Setter TargetName="txt" Property="Foreground" Value="#FF7E00"/>
                                                    <Setter Property="ToolTip" Value="View Fundamentals"/>
                                                </Trigger>
                                                <Trigger Property="Button.IsPressed" Value="true">
                                                    <Setter TargetName="bd" Property="Background" Value="Transparent"/>
                                                </Trigger>
                                            </ControlTemplate.Triggers>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </Button.Resources>
                    </Button>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
4

1 に答える 1

1

TextBoxの代わりにTextBlockを使用してみてください。

<TextBlock Name="txt"
Background="Transparent" 
TextAlignment="Left"
Foreground="White"
FontFamily="Ariel" 
FontSize="12"
Text="ticker"
Text="{Binding Path=Ticker, Converter={StaticResource tickerSymbolDisplay}}"
/>
于 2012-10-05T15:40:50.340 に答える