我正在尝试在wpf/xaml中创建一个控件,它将显示一个水平的图像列表.要修复的列表框的宽度(无滚动条).添加新项目时,现有项目会减少显示的图像数量以容纳它(实际图像不会仅减少所显示图像的数量).该功能类似于向具有相对宽度属性("*")的网格添加新列,并且该列包含具有固定宽度的图像.到目前为止,这是我的代码:
<Window.Resources>
<ItemsPanelTemplate x:Key="ListBox_HorizontalItems">
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
<DataTemplate x:Key="ListBox_DataTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<Image Width="150" Source="{Binding ImageSource}" />
</Grid>
</DataTemplate>
<Style x:Key="ListBox_Style_Horizontal" TargetType="ListBox">
<Setter Property="Width" Value="150" />-->
<Setter Property="ItemTemplate" Value="{StaticResource ListBox_DataTemplate}" />
<Setter Property="ItemsPanel" Value="{StaticResource ListBox_HorizontalItems}" />
</Style>
</Window.Resources>
<Grid>
<ListBox Name="lbxImages" Style="{StaticResource ListBox_Style_Horizontal}" Width="250" Height="100" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
这与我的需求非常接近!但是我无法弄清楚如何在将新项目添加到列表时减少显示的图像数量.目前,添加新项目时会出现滚动条.Incase我不是很好地解释自己这里有一些屏幕截图显示我需要的功能:

任何人都可以告诉我如何实现这一目标吗?谢谢你的帮助!
我正在尝试以编程方式向我的DataGrid添加列,因为它们在运行时才知道.我已经完成了大部分工作,并且从代码中添加"普通"列并不是问题.但是,我正在尝试添加的列现在有一个DataTemplate.这是XAML:
<DataGridTemplateColumn Header="{Binding colHeader}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border BorderBrush="{Binding BorderColour}" BorderThickness="2">
<TextBlock Text="{Binding TextInfo}" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
通常我会使用这样的东西来创建一个列添加到网格:
Private Function AddColumn(colHeader As String, colBinding As String) As DataGridColumn
Dim textColumn As New DataGridTextColumn()
textColumn.Header = colHeader
textColumn.Binding = New Binding(colBinding)
Return textColumn
End Sub
Run Code Online (Sandbox Code Playgroud)
但我对如何添加更复杂的XAML感到困惑.有什么建议?
谢谢你的帮助!
我正在使用一些Fortran代码(在此项目之前我从未使用过这个代码......)并且遇到了一个问题.我需要与另一个程序共享一些内存空间.为了让Fortran识别每个内存块,我使用以下代码:
do 10 i = 0, 5
CALL C_F_POINTER(TRANSFER(memory_location +
: VarNamesLoc_(i),
: memory_location_cptr) , VarNames_(i), [3])
exit
10 continue
Run Code Online (Sandbox Code Playgroud)
哪里:
VarLoc(i)是表示存储器位置的整数
VarNames(i)?指针数组的数组?
我遇到的问题是创建指针数组的VarNames数组.我从谷歌搜索中找到了一些示例代码,但我发现Fortran很难理解!! 任何人都可以告诉我如何设置指针数组的数组?或者如果我不正确地接近问题,请指出替代方案?
作为参考,Fortran代码是以自由形式编写的,并使用intel编译器
谢谢你的帮助!