Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh memaparkan segi empat tepat secara dinamik dalam aplikasi WPF menggunakan corak MVVM?

Bagaimanakah saya boleh memaparkan segi empat tepat secara dinamik dalam aplikasi WPF menggunakan corak MVVM?

Susan Sarandon
Lepaskan: 2025-01-29 17:26:13
asal
363 orang telah melayarinya

How can I dynamically display rectangles in a WPF application using the MVVM pattern?

Gunakan mod MVVM untuk memaparkan segi empat tepat dalam aplikasi WPF

Dalam aplikasi WPF, anda mungkin perlu menambah satu set segi empat tepat mengikut data. Ini boleh dilaksanakan oleh Model Model-View-View Model (MVVM).

Pertimbangkan model pandangan, yang mengandungi koleksi segi empat tepat abstrak yang ditunjukkan oleh objek

:

RectItem

<code class="language-csharp">public class RectItem
{
    public double X { get; set; }
    public double Y { get; set; }
    public double Width { get; set; }
    public double Height { get; set; }
}</code>
Salin selepas log masuk
dalam pandangan, anda boleh menggunakan
<code class="language-csharp">public class ViewModel
{
    public ObservableCollection<RectItem> RectItems { get; set; } = new ObservableCollection<RectItem>();
}</code>
Salin selepas log masuk
dengan

Canvas untuk memaparkan koleksi ini: ItemsPanel ItemsControl

Kaedah lain adalah menggunakan
<code class="language-xml"><ItemsControl ItemsSource="{Binding RectItems}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="ContentPresenter">
            <Setter Property="Canvas.Left" Value="{Binding X}" />
            <Setter Property="Canvas.Top" Value="{Binding Y}" />
        </Style>
    </ItemsControl.ItemContainerStyle>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Rectangle Fill="Black" Height="{Binding Height}" Width="{Binding Width}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl></code>
Salin selepas log masuk
bukannya mengikat dalam setter gaya:

RenderTransform

Dengan menggunakan teknologi ini, anda boleh memaparkan satu set segi empat tepat berdasarkan data yang disimpan dalam model paparan, untuk menyediakan antara muka pengguna tindak balas yang fleksibel dan cepat. Kedua -dua kaedah ini dapat mencapai paparan segi empat tepat yang dinamik, dan anda boleh memilih yang lebih sesuai mengikut keperluan khusus.
<code class="language-xml"><ItemsControl ItemsSource="{Binding RectItems}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Rectangle Fill="Black" Height="{Binding Height}" Width="{Binding Width}">
                <Rectangle.RenderTransform>
                    <TranslateTransform X="{Binding X}" Y="{Binding Y}" />
                </Rectangle.RenderTransform>
            </Rectangle>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl></code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah saya boleh memaparkan segi empat tepat secara dinamik dalam aplikasi WPF menggunakan corak MVVM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan