2011-02-07 2 views
2

상태 정보 팝업에서 여러 줄 TextBox를 호스팅하여 읽기 전용, 여러 줄 및 스크롤 가능한 정보를 표시하려고합니다. 다음 XAML은 텍스트가 이 아니며이 아니므로 잘 작동합니다 (사용자가 복사 할 수 있도록).팝업 내 WPF TextBox에서 텍스트를 선택할 수 없습니다.

<!-- Status info popup --> 
<Popup AllowsTransparency="True" PopupAnimation="Fade" Placement="Center" StaysOpen="False" 
     PlacementTarget="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type v:ModuleView}}}" 
     IsOpen="{Binding ShowingStatusInformation}"> 
    <Border CornerRadius="5"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="Auto" /> 
      </Grid.ColumnDefinitions> 

      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="*" /> 
      </Grid.RowDefinitions> 

      <TextBlock Text="Status Information" 
         Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" />       
      <Button Content="OK" IsDefault="True" Command="{Binding ToggleStatusInfoCommand}" 
        HorizontalAlignment="Right" Margin="0 5" Padding="20 3" 
        Grid.Column="1" Grid.Row="0" VerticalAlignment="Center"> 
       <Button.CommandParameter><sys:Boolean>False</sys:Boolean></Button.CommandParameter> 
      </Button> 

      <TextBox IsReadOnly="True" Text="{Binding StatusInformation}" 
        Margin="6 6 6 3" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" 
        TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" 
        MaxHeight="300" /> 
     </Grid> 
    </Border> 
</Popup> 

뷰 모델에 해당하는 속성 :

public string StatusInformation 
    { 
     get { return _statusInformation; } 
     set 
     { 
      _statusInformation = value; 
      _propertyChangedHelper.NotifyPropertyChanged(this,() => StatusInformation); 
     } 
    } 

    public bool ShowingStatusInformation 
    { 
     get { return _showingStatusInformation; } 
     set 
     { 
      _showingStatusInformation = value; 
      _propertyChangedHelper.NotifyPropertyChanged(this,() => ShowingStatusInformation); 
     } 
    } 

어떻게 든 텍스트 선택을 해제 팝업에 텍스트 상자를 호스팅 하는가, 또는 내 바인딩에 문제가? 텍스트를 선택할 수있는 모달 창에서 호스팅되는 TextBox를 바꿉니다.

업데이트 : Win Forms 컨테이너 내부에서 호스팅되는 WPF를 사용하는 .NET 3.5 응용 프로그램에서이 문제가 발생합니다.

+1

나는 WPF 4 사용하여 프로젝트에이 코드를 붙여 내가 텍스트 상자의 텍스트를 선택할 수 있습니다. – Zamboni

+0

이것은 Win Forms 컨테이너 내에 WPF가 호스트 된 .NET 3.5 프로젝트에서 발생합니다. – bruceboughton

+0

@ Zamboni : WPF 4에서 사용해 주셔서 감사합니다. 문제가 다소 좁혀졌습니다. – bruceboughton

답변

0

컨트롤은 언제 인스턴스화됩니까? winforms 컨트롤의 생성자에서 또는 나중에 어떤 시점에서 컨트롤이 인스턴스화됩니까? Loaded 또는 ControlCreated를 시도해 볼 수 있습니다.

ElementHost.EnableModelessKeyboardInterop이 호출되지 않았지만 팝업으로 호출 할 수없는 경우 발생하는 것과 같은 느낌입니다. 해결 방법은 '복사'버튼을 추가 할 수

...

관련 문제