弄了一个能自己随意折腾的块库,提取当前图纸的块来进行块的插入,可以进行搜索,加强了信息密度,预览图做的小不过也能看看,名字也很小,在小屏幕笔记本上也能一下显示好几个待选,也能随着界面的大小自动排列合适数量的预览图。
方法就是用一个ScrollViewer包自定义的按钮,按钮内部可以绑定块的预览图,再绑好命令,闲的可以再优化下鼠标滚动能翻一整页的逻辑。
预览图这块高版本有自带的方法,可怜的低版本像这个2012并没有,如果不做处理,用自带的块预览图效果会很模糊,不过没关系,也有其它的方法可以生成清楚点的预览图再塞给块,只是要麻烦点,我参考的blockview,不知道各位大佬对于低版本做预览图这块有没有更好的办法。
其他什么比例角度的暂时没啥需求也就不弄了。

下面是右侧块展示区域的XAML,供参考,丢给AI说不定也就折腾出来了。
<!--  右侧自适应块展示  -->
<ScrollViewer
    x:Name="BlockScroller" Grid.Column="2" PreviewMouseWheel="BlockScroller_PreviewMouseWheel" VerticalScrollBarVisibility="Auto">
    <ItemsControl ItemsSource="{Binding 当前图纸块集合}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel HorizontalAlignment="Stretch" Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemContainerStyle>
            <Style TargetType="ContentPresenter">
                <Setter Property="HorizontalAlignment" Value="Left" />
                <Setter Property="VerticalAlignment" Value="Top" />
            </Style>
        </ItemsControl.ItemContainerStyle>

        <!--  卡片模板  -->
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button
                    Width="60" Height="80" Margin="2" Padding="0"
                    VerticalContentAlignment="Top" Background="#60000000" BorderBrush="#E0E0E0" BorderThickness="1"
                    Command="{Binding DataContext.InsertBlockCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
                    CommandParameter="{Binding}"
                    Cursor="Hand">
                    <Button.Style>
                        <Style BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" TargetType="Button">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="Button">
                                        <Border
                                            x:Name="border"
                                            Background="{TemplateBinding Background}"
                                            BorderBrush="{TemplateBinding BorderBrush}"
                                            BorderThickness="{TemplateBinding BorderThickness}"
                                            SnapsToDevicePixels="True">
                                            <DockPanel LastChildFill="True">
                                                <Image
                                                    Width="60" Height="60" DockPanel.Dock="Top"
                                                    Source="{Binding 块缩略图}"
                                                    Stretch="Uniform" />
                                                <TextBlock
                                                    x:Name="txt" Margin="1" FontSize="8" FontWeight="ExtraBold"
                                                    Foreground="WhiteSmoke" LineHeight="8" LineStackingStrategy="BlockLineHeight"
                                                    Text="{Binding 块名}"
                                                    TextAlignment="Center" TextWrapping="Wrap" />
                                            </DockPanel>
                                        </Border>

                                        <ControlTemplate.Triggers>
                                            <Trigger Property="IsMouseOver" Value="True">
                                                <Setter TargetName="txt" Property="FontSize" Value="9" />
                                            </Trigger>
                                        </ControlTemplate.Triggers>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </Button.Style>
                </Button>
            </DataTemplate>
        </ItemsControl.ItemTemplate>

        <!--  空状态提示  -->
        <ItemsControl.Template>
            <ControlTemplate TargetType="ItemsControl">
                <Grid>
                    <ItemsPresenter />
                    <TextBlock
                        Margin="20" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="ExtraBold"
                        Foreground="#000" Text="暂无块数据"
                        Visibility="{Binding Items.Count, RelativeSource={RelativeSource AncestorType=ItemsControl}, Converter={StaticResource CountToVisibilityConverter}}" />
                </Grid>
            </ControlTemplate>
        </ItemsControl.Template>
    </ItemsControl>
</ScrollViewer>



网友答: 论坛打开gif附件好像很慢。。。补个截图吧

网友答: nice,学习学习

网友答: 6666666666

网友答: 其实gif和视频一样也能剪辑的,录制的时候,设置一下,还有后期处理时候调一下,gif文件会小很多

网友答:
tranque 发表于 2026-1-12 23:35
其实gif和视频一样也能剪辑的,录制的时候,设置一下,还有后期处理时候调一下,gif文件会小很多

在上传限制大小以内,只有3M多,不应该要转很久的圈,转出的时候已经是用的最低画质了...
  • 上一篇:c#版的云线批注
  • 下一篇:没有了