【问题标题】:Setting different height of an image in button control in all instances of the button control在按钮控件的所有实例中设置按钮控件中图像的不同高度
【发布时间】:2014-12-22 09:13:51
【问题描述】:

我有一个如下所示的 wpf 控件:

<Button x:Class="myProject.UI.Controls.MyButton" FocusVisualStyle="{x:Null}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
<Button.Template>
    <ControlTemplate TargetType="{x:Type Button}">
        <Border x:Name="border" CornerRadius="8" Background="{DynamicResource ResourceKey=BackgroundColor}">
            <DockPanel Margin="3">
                <Viewbox DockPanel.Dock="Left">
                    <Image Height="30" Source="{Binding Path=Tag, RelativeSource={RelativeSource TemplatedParent}}" Margin="5" VerticalAlignment="Center" HorizontalAlignment="Left" />
                </Viewbox>
                <TextBlock DockPanel.Dock="Left" Text="{Binding Path=Content,RelativeSource={RelativeSource TemplatedParent}}" FontSize="{Binding Path=FontSize,RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center" Padding="10,0,10,0" HorizontalAlignment="Left"/>
                <Image DockPanel.Dock="Right" Source="{DynamicResource ResourceKey=Bmp}" Height="30" Width="30" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0"></Image>
            </DockPanel>
        </Border>
    </ControlTemplate>
</Button.Template>

当我在我看来使用它时,这就是我写的:

<controls:MyButton FontSize="24" Width="210" Height="60" Foreground="White" Tag="{Binding Source={x:Static properties:Resources.backArrow}, Converter={StaticResource BitmapToImageSourceConverter}}" Content="{DynamicResource BackArrowButton}" Command="{Binding Path=GoToPreviousPage}" Margin="60 0 0 0">
    <Button.Resources>
        <Brush x:Key="BackgroundColor">#005BB5</Brush>
    </Button.Resources>
</controls:ImageButton>

问题是我的项目中有几个这个按钮的实例。在其中一些中,第一张图像(在视图框中)的高度应该是 30,而在其中一些需要是 10。

如何从按钮的每个实例中设置第一张图像的高度?例如,像这样:

<controls:MyButton **HeightOfTheFirstImage**="10" FontSize="24" Width="210" Height="60" Foreground="White" Tag="{Binding Source={x:Static properties:Resources.backArrow}, Converter={StaticResource BitmapToImageSourceConverter}}" Content="{DynamicResource BackArrowButton}" Command="{Binding Path=GoToPreviousPage}" Margin="60 0 0 0">
    <Button.Resources>
        <Brush x:Key="BackgroundColor">#005BB5</Brush>
    </Button.Resources>
</controls:ImageButton>

【问题讨论】:

  • 我看到了这个myProject.UI.Controls.MyButton,这意味着你的Button有自己的自定义类,所以你可以随时添加一些属性,比如FirstImageHeight,然后将第一个图像的高度绑定到该属性。使用 Button 时,您可以按需设置该属性。

标签: wpf button user-controls


【解决方案1】:

可以尝试将视框高度设为 Min。高度......以及要拉伸的内容左右 http://msdn.microsoft.com/en-us/library/ms752301(v=vs.110).aspx

这可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多