How to improve my game?
In your ReadStar1 method I assume your forgot the brackets around the if (readtxt == "star1") block? Right now you always collapse visibility of star1_1.
Your ReadStar1 and ReadStar2 methods share lot of code and should be refactored into one method. The only real difference is which file you read and what you do if you read a specific string. Pass in what you want to read and remove the concern of what should happen if you do read it by returning a bool indicating whether the string was found (the purpose of the method should be to determine if a certain file contains a certain string):

private async Task&lt;bool&gt; StarExists(string star)
{
    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;

    if (local != null)
    {
        var dataFolder = await local.GetFolderAsync("level");
        var file = await dataFolder.OpenStreamForReadAsync(star + ".txt");
        string readtxt;
        using (StreamReader streamReader = new StreamReader(file))
        {
            readtxt = streamReader.ReadToEnd();
        }

        return readtxt == star;
    }
    return false;
}

private async void CheckLevels()
{
    var hasStar1 = await StarExists("star1");
    var hasStar2 = await StarExists("star2");

    if (hasStar1)
    {
        star2_lock.Visibility = Visibility.Collapsed;
        star1_1.Visibility = Visibility.Collapsed;
    }

    if (hasStar2)
    {
        star3_lock.Visibility = Visibility.Collapsed;
    }         
}


Then your constructor becomes:

public MainMenu()
{
    InitializeComponent();
    CheckLevels();
}

If you use strings like "star1" and "star2" in multiple places then consider making them public const fields of a class rather than sprinkling string literals around everywhere. If you ever decide to change them you will have to change a lot less code.