Создать пользовательский элемент управления, который получает контент из кода пользователя / xaml (UWP) - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть пользовательский элемент управления, в котором находится стилизованная кнопка переключения.Я хочу использовать этот элемент управления и передать содержимое в пользовательский элемент управления следующим образом:

Пользовательский элемент управления:

<UserControl
    x:Class="TouchApp.UI.Views.DieselMotor.DieselToggle"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TouchApp.UI.Views.DieselMotor"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Name="DieselButton"
    d:DesignHeight="300"
    d:DesignWidth="400">

    <UserControl.Resources>
        <Style x:Key="DieselToggleButton"  TargetType="ToggleButton">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                        <Grid x:Name="RootGrid">
                            <Ellipse 
                                Margin="6,-49,0,0"
                                Width="340"
                                Height="340"
                                Stroke="Black"
                                StrokeThickness="2">
                                <Ellipse.Fill>
                                    <SolidColorBrush Color="{Binding Path=BackColor, ElementName=DieselButton}"/>
                                </Ellipse.Fill>
                            </Ellipse>
                            <ContentPresenter 
                                Content="{TemplateBinding Content}"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

    <ToggleButton 
        Style="{StaticResource DieselToggleButton}">
        <ContentControl Content="{TemplateBinding Content}"/>
    </ToggleButton>
</UserControl>

Я надеялся использовать пользовательский элемент управления следующим образом:

<local:DieselToggle
    BackColor="Aqua"
    Command="{Binding SteeringCommand}" CommandParameter="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}">
    <StackPanel>
        <Image Source="../../../Resources/Diesel/Actuator_off.png"/>
        <TextBlock 
            Style="{StaticResource MainButtonText}"
            HorizontalTextAlignment="Center"
            x:Uid="buttonSteeringText"/>
    </StackPanel>
</local:DieselToggle>

Но в результате содержимое просто отображается, но не «передается» кнопке переключения.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 07 декабря 2018

Я ожидаю ошибки компиляции в вашем случае.Может быть, использовать Binding это исправит

Style="{StaticResource DieselToggleButton}">
    <ContentControl Content="{Binding Content}"/>
</ToggleButton>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...