Вместо того, чтобы иметь класс Card, вы можете создать UserControl (с именем Card или ucCard или любым другим), который наследуется от PictureBox (вместо того, чтобы наследовать от UserControl). Самый простой способ сделать это в C # - добавить UserControl с желаемым именем, а затем в коде изменить верхнюю строку с
public partial class ucCard : UserControl
до
public partial class ucCard : PictureBox
В этом случае ваш элемент управления ucCard будет иметь все свойства PictureBox (включая изображение, где вы будете хранить растровое изображение карты). Когда вы строите свой проект, компилятор отключит строку, которая ссылается на AutoScaleMode - просто удалите эту строку и перестройте.
Затем вы можете добавить любые дополнительные свойства и методы, которые требуются картам, такие как масть и ранг и битовые карты для лицевой и оборотной сторон карты (оборотная сторона может быть статической, чтобы все карты могли ее использовать), и, возможно, Flip ( ) метод переключения между передним и задним изображениями.
Что касается ООП, то забытая часть святой троицы представляется инкапсуляцией. В этом случае, поскольку карта является визуальным элементом в пользовательском интерфейсе, с которым взаимодействует пользователь, имеет смысл инкапсулировать ее как UserControl. Как вы уже заметили, это упростит приложение и облегчит вашу жизнь.