Member 13170154 Ответов: 1

Как определить карты и итоговые значения в классе?


Non-invocable member cannot be used like a method
ошибка для uri
Имя ImageSource не существует в текущем контексте
карта не содержит определения для карт и итога.
How to define cards andtotal values in class?

Может ли кто-нибудь помочь мне с этими ошибками?

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Threading;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Controls.Primitives;
using System.Data;
using System.ComponentModel;
using static System.Net.Mime.MediaTypeNames;
using System.IO;

namespace solitair
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        BackgroundWorker backgroundWorker1 = new BackgroundWorker();
        public MainWindow()
        {
            InitializeComponent();
            pbStatus.Visibility = Visibility.Hidden;
            Reset();

        }
        public void Reset()

        {

            Uri("image\\Cards\\back.png");

            ImgCard.Source = imageSource;

            OfCardstext.Content = "";

            Cardtext.Content = "";

            Totaltext.Content = "";

            ListHeader.Items.Clear();

        }

        private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
        {

        }

        private void hscroll_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Shuffle.Visibility = Visibility.Visible;

            pbStatus.Visibility = Visibility.Visible;
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            backgroundWorker1 = new BackgroundWorker();

            backgroundWorker1.DoWork += backgroundWorker1_DoWork;

            backgroundWorker1.ProgressChanged +=

            backgroundWorker1_ProgressChanged;

            backgroundWorker1.RunWorkerCompleted +=

            backgroundWorker1_RunWorkerCompleted;

            backgroundWorker1.WorkerReportsProgress = true;

            backgroundWorker1.WorkerSupportsCancellation = true;

            backgroundWorker1.RunWorkerAsync(100);
        }
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

        {

            int result = 0;

            for (int i = 1; i <= 100; i++)

            {

                if (backgroundWorker1.CancellationPending)

                {

                    e.Cancel = true;

                    break;

                }

                Thread.Sleep(100);

                // Report progress.

                backgroundWorker1.ReportProgress(i);

                //TODO: your result code here

            }

            e.Result = result;

        }

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)

        {

            int item = e.ProgressPercentage;

            // Change the value of the ProgressBar to the BackgroundWorker progress.

            pbStatus.Value = item;

            // Set the text.

        }

        void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

        {

            if (e.Cancelled)

            {

            }

            else

            {

                Random RMNumber = new Random();

                int Card = RMNumber.Next(1, 12);

                var CardCodes = new List<string> { " c", " d ", "s", " h" };

                Random RMChar = new Random();

                int index = RMChar.Next(CardCodes.Count);

                var Codes = CardCodes[index];

                String CardName = "image\\Cards\\" + Codes;


                if (Card > 10)

                {

                    CardName = CardName + Convert.ToString(Card) + ".png";

                }

                else

                {

                    CardName = CardName + "0" + Convert.ToString(Card) + ".png";

                }

                ImageSource imageSource = new BitmapImage(new Uri(CardName));

                ImgCard.Source = imageSource;

                string CardNm = "";

                if (Codes == "c")

                {

                    if (Card == 11)

                    {

                        CardNm = "Jack of Clubs";

                    }

                    else if (Card == 12)

                    {

                        CardNm = "Queen of Clubs";

                    }

                    else if (Card == 13)

                    {

                        CardNm = "King of Clubs";

                    }

                    else

                    {

                        CardNm = Convert.ToString(Card) + "of Clubs";

                    }

                }

                else if (Codes == "d")

                {

                    if (Card == 11)

                    {

                        CardNm = "Jack of Diamonds";

                    }

                    else if (Card == 12)

                    {

                        CardNm = "Queen of Diamonds";

                    }

                    else if (Card == 13)

                    {

                        CardNm = "King of Diamonds";

                    }

                    else

                    {

                        CardNm = Convert.ToString(Card) + "of Diamonds";

                    }

                }

                else if (Codes == "s")

                {

                    if (Card == 11)

                    {

                        CardNm = "Jack of Spades";

                    }

                    else if (Card == 12)

                    {

                        CardNm = "Queen of Spades";

                    }

                    else if (Card == 13)

                    {

                        CardNm = "King of Spades";

                    }

                    else

                    {

                        CardNm = Convert.ToString(Card) + "of Spades";

                    }

                }

                else if (Codes == "h")

                {

                    if (Card == 11)

                    {

                        CardNm = "Jack of Hearts ";

                    }

                    else if (Card == 12)

                    {

                        CardNm = "Queen of Hearts";

                    }

                    else if (Card == 13)

                    {

                        CardNm = "King of Hearts";

                    }

                    else

                    {

                        CardNm = Convert.ToString(Card) + "of Hearts";

                    }

                }

                int total = 0;

                if (ListHeader.Items.Count> 0)

                {
                    total = Card + Convert.ToInt32(Totaltext.Content);

                    OfCardstext.Content = Convert.ToInt32(OfCardstext.Content) + 1;

                    Totaltext.Content = total;
                }



                else

                {

                    total = Card;

                    OfCardstext.Content = 1;

                    Cardtext.Content = Card;

                    Totaltext.Content = total;

                }

                Cardtext.Content = Card.ToString();

                ListHeader.Items.Add(new card { Cards = CardNm, Total = total });


            }

        }

    }
}

OriginalGriff

Не от этого, мы не можем.
Нам нужен контекст, чтобы посмотреть на эти случайные линии - а у нас их нет.
Отредактируйте свой вопрос и вставьте метод, который генерирует ошибку, затем скопируйте и вставьте сообщение об ошибке и сообщите нам, в какой строке компилятор его находит.
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

1 Ответов

Рейтинг:
7

Nirav Prabtani

По биту кода мы не можем определить точную проблему, но ваша ошибка ясно говорит о ваших шагах разрешения

1) имя ImageSource не существует в текущем контексте

ImageSource не объявляется в текущей области видимости, вам нужно объявить там, где вы находитесь
используя то же самое или убедитесь, что он должен быть доступен там, где это необходимо.

2) карта не содержит определения для карт и Тотал.

Нет никакого определения для карт и всего в card

3) не вызываемый член не может использоваться как метод
Комментарий Uri из reset

public void Reset()

{

// Uri("image\\Cards\\back.png");

ImgCard.Source = imageSource;

OfCardstext.Content = "";

Cardtext.Content = "";

Totaltext.Content = "";

ListHeader.Items.Clear();

}

и установите просто обновите свой код bitmapimage следующим образом
BitmapImage myBitmapImage = new BitmapImage();

myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"your image path");


ImageSource imageSource = myBitmapImage


Member 13170154

Могу я узнать, как их объявить?
uri не может использоваться как ошибка метода
imagesource недоступен в текущем контексте

Nirav Prabtani

в этом коде

общественного недействительными сбросить()

{

Ури("образ\\карты\\обратно.ПНГ");

ImgCard.Источник = imageSource;

OfCardstext.Содержание = "";

Cardtext.Содержание = "";

Totaltext.Содержание = "";

ListHeader.Предметы.Четкий();

}

где вы объявили imageSource ??

Member 13170154

private ImageSource imageSource; в mainwindow.xaml
использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
используя системы.Текст;
использование системы.Нарезание резьбы.Задачи;
использование системы.Окна.Средства массовой информации.Изображений;

пространство имен солитер
{
классная карточка
{
общественного строка карты { получить; набор внутренних; }
public int Total { get; внутренний набор; }
}
}

я попробовал. и ошибки для источника изображения, карты и итога исчезли, но все еще uri не решен
было бы очень полезно, если бы вы могли сказать мне, где их объявить и каков код для этого.

Nirav Prabtani

Почему вы установили его в частном порядке ??

Сделайте его общедоступным или объявите в нужной области, чтобы он был доступен

Member 13170154

Так что же ты мне предлагаешь? изменить его на публичный? Я сделал. Что дальше?
было бы очень полезно, если бы вы могли сказать мне, где их объявить и каков код для этого.

Nirav Prabtani

Теперь постройте свой код и проверьте, сохраняется ли эта ошибка до сих пор ?

"Имя ImageSource не существует в текущем контексте"

Member 13170154

все прошло, спасибо. но Uri по-прежнему отображается как ошибка.
Не вызываемый член "Uri не может использоваться как метод.Как я могу решить эту проблему?

Nirav Prabtani

Комментарий Uri из reset

общественного недействительными сбросить()

{

// Ури("образ\\карты\\обратно.ПНГ");

ImgCard.Источник = imageSource;

OfCardstext.Содержание = "";

Cardtext.Содержание = "";

Totaltext.Содержание = "";

ListHeader.Предметы.Четкий();

}


и установите просто обновите свой код bitmapimage следующим образом

BitmapImage myBitmapImage = новый BitmapImage();

myBitmapImage.Метод begininit();
myBitmapImage.UriSource = new Uri (@"путь к вашему изображению");


ImageSource imageSource = myBitmapImage

Member 13170154

Система.UriFormatException: "недопустимый URI: формат URI не может быть определен".
Когда я скомпилировал его, появилась эта ошибка.
Теперь мой код таков:
BitmapImage myBitmapImage = новый BitmapImage();

myBitmapImage.Метод begininit();
myBitmapImage.UriSource = new Uri (@"image\ \ cards\\*. png");


ImageSource imageSource = myBitmapImage;
код XAML:
& lt;Canvas HorizontalAlignment= "Left" Height= " 198 "Margin=" 10,59,0,0 "VerticalAlignment=" Top "Width=" 144 "Background= " #FFF9F4F4">



(Я думаю, что путь не распознан или мне нужно изменить свой код xaml, и самое главное, мне нужно получить случайное изображение из папки, в которой я хранил изображения. изображение/карты / * png))

Nirav Prabtani

Убедитесь, что изображение доступно по этому пути

myBitmapImage.UriSource = новый URI(@"изображения\\карты\\обратно.ПНГ");

Member 13170154

Как я могу увидеть путь к изображениям в обозревателе решений?

Nirav Prabtani

Вы устанавливаете приложение.StartupPath или что-то подобное, чтобы получить изображение, или вы можете установить статический путь, если путь известен как @"C://folder/directory/abc.png"

Nirav Prabtani

И пометьте этот ответ как решенный, если все ваши вопросы были решены.

Это может быть полезно и для других

Member 13170154

это почти сработало, дорогая, есть три проблемы, индикатор выполнения не отображается, и изображение не отображается, и кнопка Получить карту я должен нажать ее дважды, чтобы сделать отображение кода.
Вы можете мне помочь с этим?
Вот мой код xaml:
& lt;Window x: Class= " solitair.Главное окно"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
описание:х="http://schemas.microsoft.com/winfx/2006/xaml"
описание:д="http://schemas.microsoft.com/expression/blend/2008"
описание:МС="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns: local= " clr-пространство имен: solitair"
mc: Ignorable= " d"
Название="получить карточку близким" Высота="447.881" ширина="478.284" ResizeMode="NoResize"&ГТ;
& lt;сетка>
& lt;сетка. фон>
<LinearGradientBrush EndPoint= "0.5, 1" StartPoint= "0.5, 0">
& lt;GradientStop Color=" Black "Offset= "0"/>
& lt;GradientStop Color="#FFEE5E5E "Offset= "0.277"/>


& lt;Rectangle Fill= "#FFF4F4F5 "HorizontalAlignment=" Left "Height=" 38 "Stroke= "Black" VerticalAlignment= " Top "Width=" 517 " />

& lt;label. background>
<LinearGradientBrush EndPoint= "0.5, 1" StartPoint= "0.5, 0">
& lt;GradientStop Color=" Black "Offset= "0"/>
& lt;GradientStop Color= "#FF79CCE4 " />


&ЛТ;Высота текстового поля="23" TextWrapping значение="обернуть" HorizontalContentAlignment="центр" текст="как близко вы можете добраться до 25" ширина="470" очередь textchanged="TextBox_TextChanged" BorderBrush="#FF8DE0E4"&ГТ;
< textbox. background>
<LinearGradientBrush EndPoint= "0.5, 1" StartPoint= "0.5, 0">
& lt;GradientStop Color=" Black "Offset= "0"/>
& lt;GradientStop Color= "#FF79CCE4 " />




<StackPanel Name=" sp "Margin=" 7,-3,10,3 " />
& lt;Canvas HorizontalAlignment= "Left" Height= " 198 "Margin=" 10,59,0,0 "VerticalAlignment=" Top "Width=" 144 "Background= " #FFF9F4F4">



& lt;label. background>
<LinearGradientBrush EndPoint= "0.5, 1" StartPoint= "0.5, 0">
& lt;GradientStop Color=" Black "Offset= "0"/>
& lt;GradientStop Color="#FFEAD02A "Offset= "0.5"/>




& lt;label. background>
<LinearGradientBrush EndPoint= "0.5, 1" StartPoint= "0.5, 0">
& lt;GradientStop Color=" Black "Offset= "0"/>
& lt;GradientStop Color="#FFEAD02A "Offset= "0.5"/>




& lt;label. background>
<LinearGradientBrush EndPoint= "0.5, 1" StartPoint= "0.5, 0">
& lt;GradientStop Color=" Black "Offset= "0"/>
& lt;GradientStop Color="#FFEAD02A "Offset= "0.5"/>






&ЛТ;списка имя="ListView с" поле HorizontalAlignment="левой" высота="140" маржи="232,116,0,0" имеет="топ" ширина="225"и GT;
< высота сетки= " 116 "ширина= "209">
<ListView x:Name=" ListHeader "Height= "25" BorderThickness= " 1 "ItemsSource=" {Binding Path="}"
IsSynchronizedWithCurrentItem= "True" Margin= "0,2,0,89" >
< listview. view>
<gridview>
&ЛТ;GridViewColumn заголовок="карточка" DisplayMemberBinding="{путь привязки=карта}" ширина="150"/&ГТ;
&ЛТ;GridViewColumn заголовок="Итого" DisplayMemberBinding="{путь привязки=общий}" ширина="50"/&ГТ;






кнопка &ЛТ;.фон

Nirav Prabtani

Это другой вопрос, закройте этот вопрос замечанием в качестве ответа и задайте другой вопрос другим требованием

Member 13170154

ладно

Member 13170154

Я отправил еще один вопрос, как вы сказали. Не могли бы вы мне помочь с этим?