Как связать шаблон в настраиваемом элементе управления - PullRequest
0 голосов
/ 28 января 2012

В моем проекте я настраиваю управление ползунком. Пожалуйста, помогите мне.

                                <Thumb x:Name="HorizontalThumb" Grid.Column="1" Margin="-1,-10,0,0" RenderTransformOrigin="0.5,0.5" Width="1" >
                                    <!--<Thumb.RenderTransform>
                                            <ScaleTransform ScaleY="1" ScaleX="30"/>
                                        </Thumb.RenderTransform>-->
                                    <Thumb.Template>
                                        <ControlTemplate>
                                            <Grid>
                                                <Image Height="60" Width="110" IsHitTestVisible="True" Margin="-110,-10" Stretch="Fill" Source="/DiaDiemJSC;component/bluebutton.png" />
                                                <TextBlock FontFamily="Tahoma" x:Name="TextContent" Text="{TemplateBinding ContentSlider}" Margin="-110,-10" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                            </Grid>
                                        </ControlTemplate>
                                    </Thumb.Template>
                                </Thumb>

                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Я хочу TemplateBinding для TextBlock x: Name = "TextContent". Я безуспешно пытался.

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Если я угадаю правильно, то вы пытаетесь создать шаблон элемента управления для элемента управления ползунком и хотите иметь TextBlock, который показывает значение ползунка.Внутри большого пальца значение ползунков было недоступно, поэтому вам нужно использовать что-то вроде того, что я делал в этом небольшом примере кода.Я добавил свойство Value в Thumbs DataContext с TemplateBinding, а затем использовал Binding для моего TextBlock, и это сработало.

<Thumb x:Name="HorizontalThumb" Grid.Column="1" Height="12" Margin="0,22,0,50" Width="12" DataContext="{TemplateBinding Value}">
                                    <Thumb.Template>
                                        <ControlTemplate>
                                            <Canvas Background="{StaticResource PhoneForegroundBrush}" Height="12" Width="12">
                                                <Rectangle Fill="Transparent" Height="84" IsHitTestVisible="True" Canvas.Left="-24" Canvas.Top="-22" Width="60"/>
                                                <TextBlock Text="{Binding}"></TextBlock>
                                            </Canvas>
                                        </ControlTemplate>
                                </Thumb.Template>
                            </Thumb>
0 голосов
/ 28 января 2012

Если вы устанавливаете свойство ContentSlider через Binding, то TemplateBinding не будет работать.

Но TemplateBinding - это сокращение

{Binding Path=ContentSlider, RelativeSource={RelativeSource TemplatedParent}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...