Пример #1
0
 public InfoCard(InfoCardModel info, Canvas canvas, bool readOnly)
 {
     InitializeComponent();
     isReadOnly = readOnly;
     SetInfoCard(info);
     parent = canvas;
 }
Пример #2
0
        private void SetInfoCard(InfoCardModel info)
        {
            title.Text = info.title;

            ColumnDefinition column1 = new ColumnDefinition();

            column1.Width = new GridLength(80);
            gCard.ColumnDefinitions.Add(column1);


            ColumnDefinition column2 = new ColumnDefinition();

            column2.Width = new GridLength(1, GridUnitType.Auto);
            gCard.ColumnDefinitions.Add(column2);


            ColumnDefinition column3 = new ColumnDefinition();

            column3.Width = new GridLength(1, GridUnitType.Star);
            gCard.ColumnDefinitions.Add(column3);

            int i = 0;

            foreach (KeyValuePair <string, string> field in info.mainFields)
            {
                RowDefinition row = new RowDefinition();
                row.Height = new GridLength(1, GridUnitType.Auto);
                gCard.RowDefinitions.Add(row);
                TextBlock key = new TextBlock();
                key.Text = field.Key + ":";
                Grid.SetRow(key, i);
                Grid.SetColumn(key, 1);
                key.Padding           = new Thickness(10, 0, 10, 0);
                key.VerticalAlignment = VerticalAlignment.Center;
                gCard.Children.Add(key);
                TextBox value = new TextBox();
                value.Text       = field.Value;
                value.Background = new SolidColorBrush()
                {
                    Opacity = 0
                };
                Grid.SetRow(value, i);
                Grid.SetColumn(value, 2);
                value.Padding           = new Thickness(0, 2, 0, 2);
                value.VerticalAlignment = VerticalAlignment.Center;
                value.IsReadOnly        = isReadOnly;
                value.Margin            = new Thickness(0, 2, 10, 2);
                value.TextWrapping      = TextWrapping.Wrap;
                gCard.Children.Add(value);
                i++;
            }

            Image pic = new Image();

            pic.Width  = 64;
            pic.Height = 64;
            BitmapImage bmp = new BitmapImage();

            bmp.BeginInit();
            string projectName = Assembly.GetCallingAssembly().GetName().Name;

            bmp.UriSource = new Uri("pack://application:,,,/" + projectName + ";component/Resources/images/operator.png");
            bmp.EndInit();
            pic.Source = bmp;


            bmpPin = new BitmapImage();
            bmpPin.BeginInit();
            bmpPin.UriSource = new Uri("pack://application:,,,/" + projectName + ";component/Resources/images/pin.png");
            bmpPin.EndInit();

            bmpUnPin = new BitmapImage();
            bmpUnPin.BeginInit();
            bmpUnPin.UriSource = new Uri("pack://application:,,,/" + projectName + ";component/Resources/images/unpin.png");
            bmpUnPin.EndInit();

            bmpCollapse = new BitmapImage();
            bmpCollapse.BeginInit();
            bmpCollapse.UriSource = new Uri("pack://application:,,,/" + projectName + ";component/Resources/images/collapse.png");
            bmpCollapse.EndInit();

            bmpExpand = new BitmapImage();
            bmpExpand.BeginInit();
            bmpExpand.UriSource = new Uri("pack://application:,,,/" + projectName + ";component/Resources/images/expand.png");
            bmpExpand.EndInit();

            Grid.SetRowSpan(pic, i);

            gCard.Children.Add(pic);

            foreach (KeyValuePair <string, string> prop in info.additionalProperties)
            {
                RowDefinition row = new RowDefinition();
                row.Height = new GridLength(1, GridUnitType.Auto);
                gCard.RowDefinitions.Add(row);
                TextBlock key = new TextBlock();
                key.Text = prop.Key + ":";
                Grid.SetRow(key, i);
                Grid.SetColumn(key, 0);
                key.Padding           = new Thickness(10, 0, 10, 0);
                key.VerticalAlignment = VerticalAlignment.Center;
                gCard.Children.Add(key);
                TextBox value = new TextBox();
                value.Text       = prop.Value;
                value.Background = new SolidColorBrush()
                {
                    Opacity = 0
                };
                value.VerticalAlignment = VerticalAlignment.Center;
                Grid.SetRow(value, i);
                Grid.SetColumn(value, 1);
                Grid.SetColumnSpan(value, 2);
                value.Padding      = new Thickness(0, 2, 0, 2);
                value.Margin       = new Thickness(0, 2, 10, 2);
                value.IsReadOnly   = isReadOnly;
                value.TextWrapping = TextWrapping.Wrap;
                gCard.Children.Add(value);

                i++;
            }
        }