0
両方のtxtBoxからフォーカスが失われると(「値」フィールド)、それらを非表示にしたいと思う。 "GrdAmountInDollars"がまったく表示されないため、私が試したオプションについてコメントしました。 アイデア?事前に THXLostFocusのコントロールを非表示にする
私のXAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="150" Width="525" FlowDirection="LeftToRight">
<Window.Resources>
<Style x:Key="MyTemplate" TargetType="{x:Type ContentControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContentControl}">
<Grid VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="0,4,0,0" Height="60">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="4"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="4"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Focusable="False" Text="From amt" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0"/>
<TextBox x:Name="tbxMinQtyRange" Grid.Column="2" MaxLength="12"
Text="{Binding MinQtyRange, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Stretch" Width="54" Padding="0" Margin="0" Height="20" VerticalAlignment="Center" Grid.ColumnSpan="1" />
<TextBlock Grid.Column="4" Focusable="False" Text="To amt" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0" />
<TextBox x:Name="tbxMaxQtyRange" Grid.Column="6" MaxLength="12"
Text="{Binding MaxQtyRange, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
HorizontalAlignment="Stretch" Width="54" Padding="0" Margin="0" Grid.ColumnSpan="1" Height="20" VerticalAlignment="Center" />
<CheckBox x:Name="chkAmountInValue" FlowDirection="LeftToRight" Grid.Column="8" HorizontalAlignment="Right" Margin="0" Grid.ColumnSpan="1" VerticalAlignment="Stretch"/>
<TextBlock x:Name="textBlock" Grid.Column="10" Focusable="False" Text="value" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0" />
<Grid x:Name="GrdAmountInDollars" Grid.ColumnSpan="7" Grid.Column="10" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Focusable="False" Text="value" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0"/>
<TextBox x:Name="TbxMinValRange" Text="{Binding MinValRange, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Column="2" Width="54"
Margin="0" Height="20" VerticalAlignment="Center"/>
<TextBlock Grid.Column="4" Focusable="False" Text="to" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0" />
<TextBox x:Name="TbxMaxValRange" Text="{Binding MaxValRange, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" Width="54"
Margin="0" Height="20" Grid.Column="6"/>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger SourceName="chkAmountInValue" Property="IsChecked" Value="True">
<Setter TargetName="textBlock" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="GrdAmountInDollars" Property="Visibility" Value="Visible"/>
<Setter TargetName="TbxMinValRange" Property="FocusManager.FocusedElement"
Value="{Binding RelativeSource={RelativeSource Self}}"/>
</Trigger>
<!--<MultiTrigger>
<MultiTrigger.Conditions>
<Condition SourceName="TbxMinValRange" Property="IsFocused" Value="False"/>
<Condition SourceName="TbxMaxValRange" Property="IsFocused" Value="False"/>
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter TargetName="chkAmountInValue" Property="IsChecked" Value="False"/>
</MultiTrigger.Setters>
</MultiTrigger>-->
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<ContentControl Style="{StaticResource MyTemplate}" IsTabStop="False"/>
</Window>
ありがとうございます。私はそれが** "と" **と一緒にいて欲しい。ただし、あなたの答えがあなたの行動を変えることはありません。 – eran
コードで説明されているように、チェックボックスステータスの後ろに他のロジックがある可能性があります。それを知らずに、私はあなたがそれを修正することはできません。 – ViVi
現在、コードはありません。そのような必要がある場合は、plzのアドバイス、私はどのようなコードを追加する必要があります – eran