2011-08-09 3 views
1

제 문제로 저를 도울 수 있기를 바랍니다. 그것은 WF 4.0 활동을위한 맞춤형 디자이너에 관한 것이지만 문제는 근본적으로 디자이너의 WPF에 있습니다. 일부 배경사용자 지정 활동 디자이너에서 자동 크기 조정을 방지하는 방법은 무엇입니까?

전자 메일을 보내려면 사용자 지정 WorkFlow 작업을 만들었습니다. 활동을위한 사용자 지정 디자이너의 경우 이전에 전자 메일의 "제목"과 "본문"에 대해 일반 텍스트 상자를 사용했지만 ExpressionTextBox를 사용하여 해당 활동의 InArguments에 쉽게 바인딩하고 싶습니다. . ExpressionTextBox는 격자 안에 있고이 격자는 StackPanel에 있습니다.

ExpressionTextBox의 MinWidth, MaxWidth 및 Margin을 다른 컨트롤에 맞게 설정했으며 Visual Studio Designer (실제 WorkFlow가 아닌 ​​사용자 지정 활동 디자이너를 볼 때)에서 모든 사항이 올바르게 표시됩니다. 사용하는 경우

<sapv:ExpressionTextBox Grid.Column="1" Grid.Row="2" Height="Auto" HorizontalAlignment="Right" Margin="4, 4, 4, 4" 
         Expression="{Binding Path=ModelItem.Subject, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In}" 
         ExpressionType="{x:Type TypeName=sys:String}" OwnerActivity="{Binding Path=ModelItem}" VerticalAlignment="Center" MaxWidth="176" MinWidth="175" /> 

문제는

, 처음에 또한 정상적으로 보이지만 ExpressionTextBoxes를 편집 할 때, 그들은 정말 작은 존재로 축소. 텍스트를 입력하면 컨트롤이 확장되어 MaxWidth에 도달 할 때까지 텍스트에 맞 춥니 다. 편집이 끝나면 MaxWidth로 돌아갑니다. 편집 모드에 있거나 상관없이 동일한 크기를 유지한다면 더 좋을 것입니다.

Small demonstration of the problem.

당신이 그것을 볼 수없는 경우, 내가 주로 윈폼을 해왔

시도했습니다 어떤 이미지 here

를 열고, 나는 꽤 경험이 있어요 WPF로, 그래서 내가 놓친 몇 가지 펑키 속성이나 다른 설정이 있는지 모르겠다. 상위 컨트롤 (StackPanel 및 Grid)의 width 속성을 설정해 보았습니다. 너비 (최소/최대)를 설정하려고했지만 설정 한 것에 관계없이 축소되는 것으로 보입니다.

자세한 정보 나 코드를 원하시면, 언제든지 문의하십시오.

당신이 Maurices 응답에 코멘트에서 볼 수 있듯이 업데이트, 나는 HorizontalAlignment로 속성을 제거하고 오른쪽으로 정렬 할 여백을 사용하여 문제를 방지하는 방법을 알아 냈어. 그러나 나는 왜이 행동이 처음에 일어 났는지 설명 할 때까지 대답을 표시하지 않을 것입니다. 내 XAML은 Maurice가 게시 한 것과 거의 동일하므로 다른 곳에서는 잘못된 것이있을 것입니다.

답변

0

ExpressionTextBox의 XAML이 나에게 잘 보이고 다음 디자이너를 사용해도 정상적으로 작동합니다.

<sap:ActivityDesigner x:Class="WorkflowConsoleApplication2.MyActivityDesigner" 
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         xmlns:sys="clr-namespace:System;assembly=mscorlib" 
         xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation" 
         xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation" 
         xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"> 
    <sap:ActivityDesigner.Resources> 
    <sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" /> 
    </sap:ActivityDesigner.Resources> 
    <Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="30"/> 
     <RowDefinition Height="30"/> 
     <RowDefinition Height="30"/> 
    </Grid.RowDefinitions> 
    <Label Content="Subject" 
      Grid.Row="2" 
      Grid.Column="0"/> 
    <sapv:ExpressionTextBox Grid.Column="1" 
          Grid.Row="2" 
          Height="Auto" 
          HorizontalAlignment="Right" 
          Margin="4, 4, 4, 4" 
          Expression="{Binding Path=ModelItem.Subject, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In}" 
          ExpressionType="{x:Type TypeName=sys:String}" 
          OwnerActivity="{Binding Path=ModelItem}" 
          VerticalAlignment="Center" 
          MaxWidth="176" 
          MinWidth="175" /> 
    </Grid> 
</sap:ActivityDesigner> 

그래서이 문제는 아마도 눈금 정의에있는 것으로 의심됩니다.

+0

ExpressionTextBox가 포함 된 열의 너비는 "자동"으로 설정되었습니다. "*"또는 고정 값으로 설정하려고 시도했습니다. 그리드 자체에 영향을 주지만 편집 할 때 ExpressionTextBox는 여전히 축소됩니다. –

+0

@LarsKristensen : ETB의 '너비'설정을 시도 했습니까? – Will

+0

너비를 설정해 보았지만 트릭도하지 못했습니다.HorizontalAlignment = "Right"속성을 제거하면 문제가 사라진다는 것을 발견했습니다. 실제로, "Stretch"이외의 다른 것으로 HorizontalAlignement를 설정하면 축소됩니다. 하지만 ETB (및 다른 모든 항목)가 왼쪽에 정렬되기를 바랍니다. 컨트롤에 직접 설정하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 아니면 다른 컨트롤에 맞게 여백 속성을 미세 조정해야합니까? (붕괴 된 "Optional settigns"에 다른 ETB가 여러 개 있습니다.) –

관련 문제