gpt4 book ai didi

c# - 使用 C# 和 Wpf 编辑组合框的子对象

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:15 25 4
gpt4 key购买 nike

背景

我目前正在编写一个允许用户从组合框中选择制造商的程序。组合框是使用以下 wpf 代码段在 wpf 中创建的:

<ComboBox Height="23" Margin="40.422,128.423,229.908,0" Name="itemProductManufacture" ToolTip="Click to open drop down menu" VerticalAlignment="Top" Text="Select A Manufacture" SelectionChanged="itemProductManufacture_SelectionChanged" DropDownOpened="itemProductManufacture_DropDownOpened">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ManufactureId}" Width="0"/>
<Image Name="itemManufactureImage" Source="{Binding ManufactureImage}" Height="15" Width="70" Stretch="Uniform"/>
<TextBlock Text="{Binding ManufactureName}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

数据是从数据库中提供的,每个条目都有一个图像、一个名称和一个 Id(有意不显示)

问题

我正在尝试对组合框的行为进行编码,因此当它打开时,图像高度为 50,当它关闭时,图像高度为 15,因此图像在首次显示时较大,然后在选择后变小,因此它不会在表单上占用太多空间。

我曾尝试使用代码编辑图像属性,但无法使用其名称或组合框的任何其他子项访问它。

谢谢

乔纳森

最佳答案

当您使用数据模板时,您将无法通过其名称直接访问。

尝试这样的事情 -

Image image = this.itemProductManufacture.ItemTemplate.FindName("itemManufactureImage", this) as Image;

我不清楚的一件事是您是要更改所有项目还是所选项目的图像大小?如果您需要访问组合框中特定项目的图像,您可能必须使用 ItemContainerGenerator.ContainerFromItem,如以下帖子中所述 -

WPF - ItemsControl - How do I get find my "CheckBox" item that is in the ItemTemplate?

http://www.sitechno.com/Blog/HowToUseAttachedPropertiesAsAnExtensionMechanismForACheckedListbox.aspx

看看这个,了解查找控件的各种方法 - How can I find WPF controls by name or type?

关于c# - 使用 C# 和 Wpf 编辑组合框的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3178896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com