簡體   English   中英

如何在C#中制作自定義UserList控件?

[英]How to make a custom UserList control in C#?

我正在制作一個聊天程序,我需要一個支持圖標,名稱,橫幅和狀態圖標的UserList控件。

這是我要克隆的UserList的圖片:

在此處輸入圖片說明

如您所見,用戶名出現在背景圖像的頂部。

到目前為止,管理員的狀態為紅色,會員的狀態為黃色,依此類推。

在管理員/成員狀態之前,還有2個狀態圖標出現,它們顯示用戶是否接受私人聊天/消息,以下是該圖標的圖片:

在此處輸入圖片說明

如您所見,UserList可以包含普通(非橫幅式)圖標以及聊天/下午狀態。

UserList必須像任何普通的listview類型控件一樣滾動。

那么有人可以告訴我如何在C#winforms或wpf中產生此控件嗎?

任何幫助將不勝感激!

如果使用WPF,請從ListView開始,然后將視圖設置為GridView。 然后設置列和單元格模板。 綁定到屬性。

<ListView Margin="10" Name="lvUsers" ItemsSource="{Binding Users}">
     <ListView.View>
        <GridView>
           <GridViewColumn Header="Name">
              <GridViewColumn.CellTemplate>
                 <DataTemplate>
                    <Grid>
                       <Image Source="{Binding UserIcon}"/>
                       <TextBlock Text="{Binding Name}" Margin="20,0,0,0" />
                    </Grid>
                 </DataTemplate>
              </GridViewColumn.CellTemplate>
           </GridViewColumn>
           <GridViewColumn Header="Status">
              <GridViewColumn.CellTemplate>
                 <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                       <Image Source="{StaticResource PrivateChatImage}" Visibility="{Binding IsPrivateChat, Converter={StaticResource BooleanToVisibilityConverter}}"/>
                       <Image Source="{StaticResource PrivateMessImage}" Visibility="{Binding IsPrivateMess, Converter={StaticResource BooleanToVisibilityConverter}}"/>
                       <Image Source="{Binding StatusIcon}"/>
                    </StackPanel>
                 </DataTemplate>
              </GridViewColumn.CellTemplate>
           </GridViewColumn>
        </GridView>
     </ListView.View>
  </ListView>

好,謝謝您的幫助。

但是,我確實設法通過自定義繪圖來解決所有問題。

這是最終結果http://q67.imgup.net/Untitledeb8d.png

基本上,我所做的是制作一個WinForms UserControl,然后添加一個userList類,以便將其掛接到OnPaint()中,然后遍歷並吸引用戶。

它工作得相當好,所以我用Name和Status為其創建了一個標題,然后使抓取器可移動它(因為其上繪制的內容必須全部是手工的)。 它將光標正確設置為拆分器。

完成此操作后,我需要一種方法來了解某人點擊了哪個用戶,但這只是一個簡單的rect搜索。

完成之后,我需要一個可以工作的滾動,因此我將用戶繪畫移動到繼承了我相信的SplitterControl的新類中,然后我根據列表中的用戶數*元素的大小等來設置滾動大小。

總而言之,此用戶列表的工作效果與我嘗試克隆的用戶列表一樣好。

一切都很好!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM