문제
이 될 수 있습 a no-brainer for WPF 감정가는,그러나 알고 싶은 경우가 있는 간단한 방법을 넣어 텍스트에 WPF 형.나는 빈 진행,커피숍/카페 등이 있습니다.의 화면 부동산을 수행할 수 있는 메시지에 대 what 에서 진행,또는 단지 숫자를 추가하는 표현입니다.지금 WPF 에 대한 모든 컨테이너 확장 내가 천천히 감싸는 내 마음을 주는지만,이후 보이지 않"텍스트"또는"콘텐츠"를 제공,내 생각을 내가 무언가를 추가하는 컨테이너 진행됩니다.이 있는 기술 또는 두 개의 밖에는 더 많은 자연보다는 내가 원래 WinForms 자극이 될 것인가?무엇 최고의 가장 WPF-자연적인 방법으로 텍스트를 추가로 진행되는 바?
해결책
는 경우가 필요하고 재사용할 수 있는 방법에 대한 추가 텍스트를 만들 수 있습니다,새로운 스타일의/테마 리소는 추가 TextBlock 를 표시할 텍스트입니다.할 수 있습 납치 TextSearch.텍스트는 연결된 속성을 설정 텍스트를 진행됩니다.
지 않는 경우에 필요하여 재사용할 수 있는,단순히 넣어 주는 동시에 즐거움을 가져다 줄 것 그리드 추가 TextBlock 니다.이후 WPF 작성할 수 있습니다 함께 요소를 이 멋지게 작동합니다.
당신이 원하는 경우,정렬할 수 있습을 노출하는 형과 TextBlock 으로 대중성,그래서 그것은 작품을 만드는 사용자 지정 테마 리소.
다른 팁
모두기 전에 응답이(만드는 새 CustomControl
나 Adorner
의)더 나은 사례,하지만 당신이 원하는 빠르고 더러운(또는 시각적으로 이해하는 그것을 어떻게)이 코드는 일:
<Grid Width="300" Height="50">
<ProgressBar Value="50" />
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
My Text
</TextBlock>
</Grid>
하는 것을 명심하십시오 z-index 는 마지막 항목을 나열한 것입니다.
또한,이 없는 경우 Kaxaml 아직,그것을 선택해야-그것은 중대한 노 XAML 하려고 할 때 그는 것입니다.
이 될 수 있습니다 아주 간단한 (이 없는 한 많은 방법이 작동하).
당신이 사용할 수 Style
이를 수행하거나 당신은 단지 오버레이 TextBlock
고 ProgressBar
.
나 개인적으로 사용하는 이의 백분율을 보여주 진행할 때를 기다리고 완성입니다.
그것을 유지하는 매우 간단한 나만하고 싶어 나
Binding
만, 그래서 첨부TextBock.Text
을ProgressBar.Value
.
다만 코드를 복사하신 것입니다.
<Grid>
<ProgressBar Minimum="0"
Maximum="100"
Value="{Binding InsertBindingHere}"
Name="pbStatus" />
<TextBlock Text="{Binding ElementName=pbStatus, Path=Value, StringFormat={}{0:0}%}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
여기에는 방법이 일반적인 형태는 다음과 같습니다.
체크아웃 WPF 튜토리얼 전체 게시합니다.
당신이 사용할 수 있는 표시기를 표시하는 텍스트의 맨 위에습니다.
당신은 클래스를 만들로부터 상속되는 표시기 클래스입니다.재정의 OnRender 방법을 그리는 원하는 텍스트.당신이 원하는 경우를 만들 수 있는 종속성 제공을 위해 사용자 지정 표시기에 포함된 원하는 텍스트가 표시됩니다.를 사용하여 다음 예에서 링크가 언급했을 추가 이 표시기를 진행 표시줄의 표시기층이다.
오른쪽 클릭 ProgressBar
, 고 편집을 클릭 템플릿>편집은 복사본입니다.
다음 TextBlock
아래와 같이 단 위의 닫기 태그 Grid
에서 스타일에 의해 생성 VS.
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
<TextBlock Background="Transparent" Text="work in progress" Foreground="Black" TextAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
새로 텍스트와 바인딩에서 2 성( 값/최대값 ):
<Grid>
<ProgressBar Name="pbUsrLvl"
Minimum="1"
Maximum="99"
Value="59"
Margin="5"
Height="24" Foreground="#FF62FF7F"/>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock.Text>
<MultiBinding StringFormat="{}UserLvl:{0}/{1}">
<Binding Path="Value" ElementName="pbUsrLvl" />
<Binding Path="Maximum" ElementName="pbUsrLvl" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
Rezult:
동나 와%의 진행 :
<Grid>
<ProgressBar Name="pbLifePassed"
Minimum="0"
Value="59"
Maximum="100"
Margin="5" Height="24" Foreground="#FF62FF7F"/>
<TextBlock Text="{Binding ElementName=pbLifePassed, Path=Value, StringFormat={}{0:0}%}"
HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>